人妖在线一区,国产日韩欧美一区二区综合在线,国产啪精品视频网站免费,欧美内射深插日本少妇

新聞動態(tài)

Python光學仿真wxpython透鏡演示系統(tǒng)框架

發(fā)布日期:2021-12-23 08:21 | 文章來源:源碼中國

透鏡演示系統(tǒng)

框架

現(xiàn)在,我們可以做一個具備友好界面的透鏡演示系統(tǒng)了。我們需要兩個圓弧來表示透鏡,一條線段表示主光軸,多條線段表示光線的傳播路徑。此外,還需要對光源和透鏡的參數(shù)進行調(diào)節(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)框架的詳細內(nèi)容,更多關于wxpython框架的資料請關注本站其它相關文章!

版權聲明:本站文章來源標注為YINGSOO的內(nèi)容版權均為本站所有,歡迎引用、轉載,請保持原文完整并注明來源及原文鏈接。禁止復制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務器上建立鏡像,否則將依法追究法律責任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學習參考,不代表本站立場,如有內(nèi)容涉嫌侵權,請聯(lián)系alex-e#qq.com處理。

相關文章

實時開通

自選配置、實時開通

免備案

全球線路精選!

全天候客戶服務

7x24全年不間斷在線

專屬顧問服務

1對1客戶咨詢顧問

在線
客服

在線客服:7*24小時在線

客服
熱線

400-630-3752
7*24小時客服服務熱線

關注
微信

關注官方微信
頂部