最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2021年10月19日 14:36:39   作者:微小冷  
這篇文章主要為大家介紹了Python光學(xué)仿真UI界面的wxpython透鏡演示系統(tǒng)框架基本講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助

透鏡演示系統(tǒng)

框架

現(xiàn)在,我們可以做一個(gè)具備友好界面的透鏡演示系統(tǒng)了。我們需要兩個(gè)圓弧來(lái)表示透鏡,一條線段表示主光軸,多條線段表示光線的傳播路徑。此外,還需要對(duì)光源和透鏡的參數(shù)進(jìn)行調(diào)節(jié)。

然而值得注意的一點(diǎn)是,我們?cè)谶M(jìn)行計(jì)算和畫(huà)圖過(guò)程中所用到的幾何圖形,在表達(dá)形式以及操作流程上可能并不相同。例如,對(duì)于光源發(fā)出的一條射線,它與透鏡的作用流程為

  • 尋找與透鏡前表面的交點(diǎn)A
  • 獲取反射和透射直線
  • 尋找透射直線與透鏡后表面的交點(diǎn)B
  • 計(jì)算透過(guò)透鏡的直線

然而對(duì)于畫(huà)圖程序來(lái)說(shuō),光源S和A之間有一條線段,A和B之間有一條線段,若想畫(huà)出透過(guò)透鏡的線段,則必須先確定這條線段的另一個(gè)端點(diǎn)。也就是說(shuō),在求解反射、透射光線的過(guò)程中,所得到的光線表達(dá)式對(duì)于畫(huà)圖來(lái)說(shuō)并無(wú)意義,只有端點(diǎn)是有意義的。

至此,即可得到這個(gè)小程序中必不可少的一些數(shù)據(jù),包括光源參數(shù)、透鏡參數(shù)、光線與表面的交點(diǎn),光線端點(diǎn)組成的點(diǎn)對(duì),所有光線的表達(dá)式,當(dāng)前仍在傳播的光線的表達(dá)式等。

于是可以建立如下代碼:

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()   #光學(xué)元件對(duì)象
        self.optiDict = {}      #光學(xué)元件參數(shù)
        self.sourceDict = {}    #光源
        self.abcs = []      #所有光線的abc參數(shù)
        self.nodes = []     #交點(diǎn)
        self.dots = []      #點(diǎn)對(duì),用于繪圖
        self.rays = []      #仍在傳播的光線
        self.InitPanel()    #初始化模板
    def InitPanel(self):
        pass                #暫時(shí)不想寫(xiě)的地方可以用pass
    #設(shè)置透鏡
    def setEdge(self):
        pass

其中,光學(xué)元件包括位置、折射率、孔徑、前表面曲率、后表面曲率等參數(shù);光源信息包括位置、角度等信息,可初始化為:

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

在上述所有計(jì)算所得的數(shù)據(jù)中,彼此有很密切的關(guān)系。例如點(diǎn)對(duì)是由兩個(gè)點(diǎn)組成,而每個(gè)點(diǎn)至少?gòu)膶儆谝粋€(gè)點(diǎn)對(duì)。而從光線的傳播角度出發(fā),除了光源,每個(gè)節(jié)點(diǎn)都有父節(jié)點(diǎn);除了最后的死點(diǎn),每個(gè)點(diǎn)都有一個(gè)子節(jié)點(diǎn)。對(duì)于任意一點(diǎn),只要遍歷其所有子節(jié)點(diǎn),就可以畫(huà)出這個(gè)點(diǎn)組成的所有線段。

以上就是Python光學(xué)仿真UI界面wxpython透鏡演示系統(tǒng)框架的詳細(xì)內(nèi)容,更多關(guān)于wxpython框架的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • django中間件及自定義中間件的實(shí)現(xiàn)方法

    django中間件及自定義中間件的實(shí)現(xiàn)方法

    中間件就是在目標(biāo)和結(jié)果之間進(jìn)行的額外處理過(guò)程,在Django中就是request和response之間進(jìn)行的處理,相對(duì)來(lái)說(shuō)實(shí)現(xiàn)起來(lái)比較簡(jiǎn)單,這篇文章主要介紹了django中間件以及自定義中間件?,需要的朋友可以參考下
    2023-06-06
  • Django中數(shù)據(jù)庫(kù)遷移常用的命令小結(jié)

    Django中數(shù)據(jù)庫(kù)遷移常用的命令小結(jié)

    在Django中數(shù)據(jù)庫(kù)遷移用于保持?jǐn)?shù)據(jù)庫(kù)結(jié)構(gòu)與模型定義同步,這篇文章主要介紹了Django中數(shù)據(jù)庫(kù)遷移常用的命令,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-03-03
  • python常用內(nèi)置模塊你了解嗎

    python常用內(nèi)置模塊你了解嗎

    這篇文章主要為大家介紹了python的常用內(nèi)置模塊,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-01-01
  • numpy中nan_to_num的具體使用

    numpy中nan_to_num的具體使用

    在Numpy中NaN值一般出現(xiàn)在數(shù)據(jù)清洗前,出現(xiàn)這個(gè)值說(shuō)明這個(gè)數(shù)據(jù)是缺失的,本文主要介紹了numpy中nan_to_num的具體使用,感興趣的可以了解一下
    2022-08-08
  • 詳解Python命令行解析工具Argparse

    詳解Python命令行解析工具Argparse

    這篇文章主要為大家詳細(xì)介紹了Python命令行解析工具Argparse的相關(guān)資料,感興趣的小伙伴們可以參考一下
    2016-04-04
  • Python實(shí)現(xiàn)批量修改指定目錄下圖片的大小

    Python實(shí)現(xiàn)批量修改指定目錄下圖片的大小

    批量修改指定目錄下圖片大小通常是在需要對(duì)大量圖片進(jìn)行統(tǒng)一處理的情況下使用的,本文主要為大家詳細(xì)介紹了如何利用Python實(shí)現(xiàn)批量修改圖片大小,需要的可以參考下
    2023-10-10
  • Python學(xué)習(xí)之圖片濾鏡效果的實(shí)現(xiàn)

    Python學(xué)習(xí)之圖片濾鏡效果的實(shí)現(xiàn)

    濾鏡效果是圖像處理中常用的一種技術(shù),可以用來(lái)增強(qiáng)圖像的視覺(jué)效果,實(shí)現(xiàn)不同的效果,本文就來(lái)利用Python中的Image模塊實(shí)現(xiàn)常見(jiàn)的幾個(gè)圖片濾鏡吧
    2023-05-05
  • python創(chuàng)建和刪除目錄的方法

    python創(chuàng)建和刪除目錄的方法

    這篇文章主要介紹了python創(chuàng)建和刪除目錄的方法,涉及Python操作目錄的相關(guān)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-04-04
  • Python 安裝setuptools和pip工具操作方法(必看)

    Python 安裝setuptools和pip工具操作方法(必看)

    下面小編就為大家?guī)?lái)一篇Python 安裝setuptools和pip工具操作方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-05-05
  • Python自動(dòng)化構(gòu)建工具scons使用入門(mén)筆記

    Python自動(dòng)化構(gòu)建工具scons使用入門(mén)筆記

    這篇文章主要介紹了Python自動(dòng)化構(gòu)建工具scons使用入門(mén)筆記,本文講解了安裝scons、scons常用命令、scons使用示例等內(nèi)容,需要的朋友可以參考下
    2015-03-03

最新評(píng)論

新民市| 延长县| 嘉祥县| 永吉县| 盐边县| 简阳市| 四会市| 上林县| 达州市| 城口县| 赫章县| 璧山县| 富源县| 海口市| 台州市| 闵行区| 新源县| 乌兰县| 衡山县| 锦州市| 五家渠市| 盐城市| 涿鹿县| 西林县| 屯留县| 金堂县| 文安县| 政和县| 海晏县| 南靖县| 连州市| 阿拉善盟| 德江县| 富川| 武冈市| 宣武区| 来安县| 泸水县| 淳化县| 潞城市| 平定县|