zemax非序列模式下有MEMS,但是没有对应的代码。无法修改成自己需要的功能
以下是实现MEMS聚焦功能:
#include <windows.h>
#include <cmath>
#include <stdio.h>
#include <string.h>
#include <algorithm>
#undef max
#undef min
#define DEGTORAD 0.0174532925199433
extern "C" {
int __declspec(dllexport) APIENTRY UserObjectDefinition(double* data, double* tri_list);
int __declspec(dllexport) APIENTRY UserParamNames(char* data);
}
int Refract(double thisn, double nextn, double* l, double* m, double* n, double ln, double mn, double nn) {
double nr, cosi, cosi2, rad, cosr, gamma;
if (thisn != nextn) {
nr = thisn / nextn;
cosi = fabs((*l) * ln + (*m) * mn + (*n) * nn);
cosi2 = cosi * cosi;