Python光學仿真wxpython透鏡演示系統(tǒng)框架
透鏡演示系統(tǒng)
框架
現(xiàn)在,我們可以做一個具備友好界面的透鏡演示系統(tǒng)了。我們需要兩個圓弧來表示透鏡,一條線段表示主光軸,多條線段表示光線的傳播路徑。此外,還需要對光源和透鏡的參數(shù)進行調節(jié)。
然而值得注意的一點是,我們在進行計算和畫圖過程中所用到的幾何圖形,在表達形式以及操作流程上可能并不相同。例如,對于光源發(fā)出的一條射線,它與透鏡的作用流程為
- 尋找與透鏡前表面的交點A
- 獲取反射和透射直線
- 尋找透射直線與透鏡后表面的交點B
- 計算透過透鏡的直線
然而對于畫圖程序來說,光源S和A之間有一條線段,A和B之間有一條線段,若想畫出透過透鏡的線段,則必須先確定這條線段的另一個端點。也就是說,在求解反射、透射光線的過程中,所得到的光線表達式對于畫圖來說并無意義,只有端點是有意義的。
至此,即可得到這個小程序中必不可少的一些數(shù)據(jù),包括光源參數(shù)、透鏡參數(shù)、光線與表面的交點,光線端點組成的點對,所有光線的表達式,當前仍在傳播的光線的表達式等。
于是可以建立如下代碼:
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 = {} #光學元件參數(shù) self.sourceDict = {} #光源 self.abcs = [] #所有光線的abc參數(shù) self.nodes = [] #交點 self.dots = [] #點對,用于繪圖 self.rays = [] #仍在傳播的光線 self.InitPanel() #初始化模板 def InitPanel(self): pass #暫時不想寫的地方可以用pass #設置透鏡 def setEdge(self): pass
其中,光學元件包括位置、折射率、孔徑、前表面曲率、后表面曲率等參數(shù);光源信息包括位置、角度等信息,可初始化為:
self.optiDict = {'xPos':300,'nOpti':1,'Diameter':100, 'lFocal':200,'rFocal':200} self.sourceDict = {'xSource':10,'ySource':100,'theta':0}
在上述所有計算所得的數(shù)據(jù)中,彼此有很密切的關系。例如點對是由兩個點組成,而每個點至少從屬于一個點對。而從光線的傳播角度出發(fā),除了光源,每個節(jié)點都有父節(jié)點;除了最后的死點,每個點都有一個子節(jié)點。對于任意一點,只要遍歷其所有子節(jié)點,就可以畫出這個點組成的所有線段。
以上就是Python光學仿真UI界面wxpython透鏡演示系統(tǒng)框架的詳細內容,更多關于wxpython框架的資料請關注腳本之家其它相關文章!
相關文章
K-means聚類算法介紹與利用python實現(xiàn)的代碼示例
K-means聚類算法(事先數(shù)據(jù)并沒有類別之分!所有的數(shù)據(jù)都是一樣的)是我們大家應該都聽過的一種算法,下面這篇文章主要給大家介紹了關于K-means聚類算法的基礎知識與利用python如何實現(xiàn)該算法的相關資料,需要的朋友可以參考借鑒,下面來一起看看吧。2017-11-11利用Chatgpt開發(fā)一款加減乘除計算器(Python代碼實現(xiàn))
這篇文章主要為大家詳細介紹了如何利用Chatgpt開發(fā)一款加減乘除計算器(用Python代碼實現(xiàn)),文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下2023-02-02pandas map(),apply(),applymap()區(qū)別解析
這篇文章主要介紹了pandas map(),apply(),applymap()區(qū)別解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-02-02Python基于分析Ajax請求實現(xiàn)抓取今日頭條街拍圖集功能示例
這篇文章主要介紹了Python基于分析Ajax請求實現(xiàn)抓取今日頭條街拍圖集功能,涉及Python針對今日頭條URL請求與json數(shù)據(jù)處理相關操作技巧,需要的朋友可以參考下2018-07-07