OPTOMETRIKA
开发人员:尤里·彼得罗夫
Optometrika图书馆实现了分析和迭代光线追踪逼近光学图像形成使用斯涅尔和菲涅尔的折射和反射定律。
目前,该库实现折光和反射一般表面,非球面(圆锥)表面与散光,菲涅耳表面,锥和圆柱体(椭圆也),平面,圆形和环形孔,矩形平板屏幕,球形屏幕,以及具有可容纳晶状体和球状视网膜的人眼的真实模型。看到的例子。m文件的例子射线跟踪一般(用户定义的形状)镜头,非球面镜头,菲涅耳镜头,棱镜,镜子,和人眼。
该库跟踪折射光线,包括折射表面的强度损失。反射光线目前被追踪到镜子上,也被追踪到单一的全内部反射或双折射,如果它发生的话。请注意,Bench类对象并不是一个真正的物理工作台,它只是一个光学元素的有序数组,并且按照正确的顺序排列光学对象是您的责任。特别是,如果需要多次跟踪通过同一对象的光线,则必须按照光线遇到对象的顺序将该对象多次添加到工作台数组中。例如,圆柱和圆锥表面的双折射/反射可以通过在工作台上添加两次表面来计算。
图书馆非常紧凑和快速。它是用Matlab类编写的,完全矢量化。在3ghz英特尔酷睿i7台式机上,通过外部透镜和人眼(8个光学表面)追踪10万束光线大约需要2秒。菲涅耳透镜的追踪有点慢,因为环路通过菲涅耳锥描述的透镜表面。通过用户定义的(一般的)表面的追踪是明显缓慢的,由于迭代搜索与表面的射线交叉。
谢谢下载Optometrika,好好享受吧!
————————————————————
列表的例子:
例二。测试Optometrika库的基本功能
example2。展示了验光师的人眼光学模型
青年们。显示人眼通过缩小视网膜图像来调节视力
example4。M:用coslens.m中定义的余弦表面轮廓测试环透镜
example5。测试平面镜子
example6。m:测试平面和抛物面镜(牛顿折射望远镜)
example7。测试菲涅耳透镜
example8。用多项式非球面项测试镜头
example9。测试锥镜
example10。测试圆柱体和圆锥表面的双重折射
example11。演示了来自人眼内部的光线追踪
example12。画一个镜头,确定它的前表面,后表面和总高度。制作一个动态gif的镜头和镜头的工程图纸。
example13。m:通过透镜边缘和后向光线折射测试(子孔径Maksutov-Cassegrain望远镜)
example14。M:测试通过带有散光的透镜(不同的垂直和水平曲率半径)的折射
example15。模拟一个六边形的球形微透镜阵列
example16。展示各种镜头的STL出口
引用作为
尤里·(2021)。OptometrikaGitHub (https://github.com/caiuspetronius/Optometrika)。检索.