广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python光学仿真wxpython透镜演示系统框架
  • 556
分享到

Python光学仿真wxpython透镜演示系统框架

2024-04-02 19:04:59 556人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

透镜演示系统 框架 现在,我们可以做一个具备友好界面的透镜演示系统了。我们需要两个圆弧来表示透镜,一条线段表示主光轴,多条线段表示光线的传播路径。此外,还需要对光源和透镜的参数进行调

透镜演示系统

框架

现在,我们可以做一个具备友好界面的透镜演示系统了。我们需要两个圆弧来表示透镜,一条线段表示主光轴,多条线段表示光线的传播路径。此外,还需要对光源和透镜的参数进行调节。

然而值得注意的一点是,我们在进行计算和画图过程中所用到的几何图形,在表达形式以及操作流程上可能并不相同。例如,对于光源发出的一条射线,它与透镜的作用流程为

  • 寻找与透镜前表面的交点A
  • 获取反射和透射直线
  • 寻找透射直线与透镜后表面的交点B
  • 计算透过透镜的直线

然而对于画图程序来说,光源S和A之间有一条线段,A和B之间有一条线段,若想画出透过透镜的线段,则必须先确定这条线段的另一个端点。也就是说,在求解反射、透射光线的过程中,所得到的光线表达式对于画图来说并无意义,只有端点是有意义的。

至此,即可得到这个小程序中必不可少的一些数据,包括光源参数、透镜参数、光线与表面的交点,光线端点组成的点对,所有光线的表达式,当前仍在传播的光线的表达式等。

于是可以建立如下代码:


import raypath as rp
class OptiTest(wx.Panel):
    def __init__(self,parent=None,size=(800,600)):
        wx.Panel.__init__(self,parent=parent,id=-1,size=size)
        self.Bind(wx.EVT_PaiNT, self.OnPaint)
        self.opti = rp.Opti()   #光学元件对象
        self.optiDict = {}      #光学元件参数
        self.sourceDict = {}    #光源
        self.abcs = []      #所有光线的abc参数
        self.nodes = []     #交点
        self.dots = []      #点对,用于绘图
        self.rays = []      #仍在传播的光线
        self.InitPanel()    #初始化模板
    def InitPanel(self):
        pass                #暂时不想写的地方可以用pass
    #设置透镜
    def setEdge(self):
        pass

其中,光学元件包括位置、折射率、孔径、前表面曲率、后表面曲率等参数;光源信息包括位置、角度等信息,可初始化为:


self.optiDict = {'xPos':300,'nOpti':1,'Diameter':100,
                 'lFocal':200,'rFocal':200}
self.sourceDict = {'xSource':10,'ySource':100,'theta':0}

在上述所有计算所得的数据中,彼此有很密切的关系。例如点对是由两个点组成,而每个点至少从属于一个点对。而从光线的传播角度出发,除了光源,每个节点都有父节点;除了最后的死点,每个点都有一个子节点。对于任意一点,只要遍历其所有子节点,就可以画出这个点组成的所有线段。

以上就是python光学仿真UI界面wxPython透镜演示系统框架的详细内容,更多关于wxpython框架的资料请关注编程网其它相关文章!

--结束END--

本文标题: Python光学仿真wxpython透镜演示系统框架

本文链接: https://www.lsjlt.com/news/154842.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python光学仿真wxpython透镜演示系统框架
    透镜演示系统 框架 现在,我们可以做一个具备友好界面的透镜演示系统了。我们需要两个圆弧来表示透镜,一条线段表示主光轴,多条线段表示光线的传播路径。此外,还需要对光源和透镜的参数进行调...
    99+
    2022-11-12
  • Python光学仿真wxpython透镜演示系统计算与绘图
    目录计算与绘图计算与绘图 这里的计算主要包括两个部分,分别是通过滚动条的参数得到光学器件的特征,这一点此前已经备述。其二则是光在传播过程中所产生的各种行为,反射折射函数也都已经讲过了...
    99+
    2022-11-12
  • Python光学仿真wxpython透镜演示系统初始化与参数调节
    初始化与参数调节面板 这一节将绘制出如下图所示的参数调节面板 对于上图来说,BoxSizer布局十分傻瓜,所以这里主要有两个方面需要注意,其一是opti和source这两个选项卡的...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作