光线跟踪和镜头设计框架

rayopt的Python项目详细描述


https://travis-ci.org/jordens/rayopt.svghttps://ci.appveyor.com/api/projects/status/6e97f8o94v7r5bpb/branch/master?svg=truehttps://codecov.io/github/jordens/rayopt/coverage.svg?branch=masterhttps://anaconda.org/jordens/rayopt/badges/installer/conda.svghttps://img.shields.io/pypi/l/rayopt.svg

简介

光学设计(透镜,腔,高斯光学,激光)。 几何、傍轴和高斯射线追踪。

安装

像任何常用的python软件包一样使用pip、easy-install或plain进行安装 setup.py。来自三个操作系统和三个当前 python版本可通过Anaconda获得。安装时使用:

conda install -c https://conda.anaconda.org/jordens/channel/ci rayopt

分发内容已包含来自http://refractiveindex.info/的所有材料。

更多的材料和镜头目录可以从免费获得 oslo和zemax的版本,复制到目录中,然后使用 rayopt/library.py(有关文件的预期位置的详细信息,请参见此处):

get and install http://www.lambdares.com/images/OSLO/OSLO662_EDU_Installer.exe
get and install http://downloads.radiantsourcemodels.com/Downloads/Zemax_2015-03-03_x32.exe
$ python -m rayopt.library \
  Users/Public/Documents/OSLO66\ EDU/bin/lmo \
  Users/Public/Documents/OSLO66\ EDU/bin/glc \
  Users/$USER/My\ Documents/Zemax/Glasscat \
  Users/$USER/My\ Documents/Zemax/Stockcat

示例

用法示例位于其own repository中的IPython Notebooks, 特别是Tutorial

注释

距离

处方规格的选择与大多数其他的有点不同 镜头设计和光线追踪程序。rayopt与元素关联 (表面):

  • 距离(或方向偏移,在全局未旋转坐标中测量 相对于前一个元素的顶点。
  • 方向(旋转框架中的x-y-z euler角度) 方向偏移
  • 元素属性(元素类型,曲率,非球面和圆锥系数, 理想元件的焦距)
  • (可选)元素之后的材质(在表面后面)

射线数据是在(射线截获)或之后(方向余弦, 旁轴斜率)除非另有说明(如发生率) 角度)。

关联“距离”而不是“后厚度”的选择 使用曲面有几个优点:可以实现位移、偏移、公差 以更直接的方式,光线传播变得更自然 有效(传输、截获、折射),表面顶点平面上的光线数据 不需要跟踪。“后厚度”在 光线跟踪数据,因为它只能在以后跟踪到下一个元素及其 方向通常是不明确的。与大多数其他程序相比 距离数据是一个元素向对象移动的厚度数据。

对象和图像

对象和图像位于第一个(索引0)和最后一个(索引1) 分别浮出水面。这自然可以追踪他们的位置, 材质和形状数据,支持自然弯曲的对象和图像。 进一步的数据,如学生数据,保存在 系统的共轭s。

因此,一个最小的单透镜系统由四个表面组成:物体, 两个镜头表面(其中一个可以是光圈挡块)和图像 表面。第一个(对象)曲面的偏移量 光线跟踪,但它可以用于定位全局坐标系的 起源。使用最后一个(图像)表面的材料 入射光线在图像表面消失。这也可以比较 与图像表面厚度无关的其他程序,或 物体空间中的物质和镜头的位置必须被跟踪 取决于实现的其他地方。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java在列表视图中插入调用按钮   java公开类别ID   java在使用JSch通过jumphost连接到远程主机时“拒绝主机密钥”   java连接。在Hibernate中为每个select查询调用getMetaData()   java如何在安卓 studio的文本监听器上突出显示过滤列表视图中的文本?   安卓应用程序、进程和Java虚拟机之间的对应关系是什么?   java如何使用Android在应用程序标签中添加这两个名称   java框架来衡量花费的时间和内存   java自动将字符串缩放到屏幕的宽度   在eclipse导出中创建jar文件时发生java错误   java Spring Web应用程序已初始化两次   java将数据插入数据库“表产品没有名为accFor(代码1)的列”   运行时如何执行。通过java中的Jruby使用带参数的rb   java Android:将视图从父视图转移到另一个视图   java如何在具有依赖关系的nexus中部署springboot maven项目   Google Java style:checkstyle文件与Visual Studio代码的相应编辑器配置文件   java以exif格式从jpeg或png文件中提取元数据