光线跟踪和镜头设计框架

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第三方库


热门话题
多线程重新构造使用线程池和BlockingQueue的I/O密集型Java web服务   java SWT CTabFolder检查CTAB是否存在   java如何防止具体类的实例化?   java如何将子域定向到正确的JBoss应用程序?   java Android外部文件出现不一致   java FileSystemNotFoundException:未安装提供程序“jndi”   显示jframe上的java隐藏单选按钮   java CXF客户端TCP连接在每个请求之间关闭   Hadoop查询、日期、循环、BASH或Java   java从长类型到十进制类型对象的转换类型错误   java为什么不在用户消息中提供用户提供的数据?有可能的威胁/攻击吗?   使用作用域存储MediaStore的应用程序中的java共享意图问题   java我可以通过将成员指针传递给方法并在方法中分配来初始化它吗?   java如何在一个包含正负值的数组中找到最大的负值?   java有比较二叉树路径的简单方法吗?   java Swagger(ui)不显示操作   java KairosDB缺失值的线性插值   用于此特定求和的java循环