基于OpenGL的實(shí)驗(yàn)室用滑動(dòng)變阻器的設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
基于OpenGL的實(shí)驗(yàn)室用滑動(dòng)變阻器的設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)
基于OpenGL的實(shí)驗(yàn)室用滑動(dòng)變阻器的設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)
基于OpenGL的實(shí)驗(yàn)室用滑動(dòng)變阻器的設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)
基于OpenGL的實(shí)驗(yàn)室用滑動(dòng)變阻器的設(shè)計(jì)與實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩1頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、基于OpenGL的真止室用滑動(dòng)變阻器的圓案與真現(xiàn)摘要本文介紹了基于penGL的真止室用滑動(dòng)變阻器的圓案與真現(xiàn)妙技,并介紹模板緩存正在圖形圓案中的使用、滑動(dòng)變阻器的三維可視化和經(jīng)由過(guò)程鼠標(biāo)真現(xiàn)其縮放戰(zhàn)挪動(dòng)等妙技真現(xiàn)成效。閉鍵字penGL;滑動(dòng)變阻器;仿真;紋理;模板緩存物理教是一門真止科教,下足沒(méi)有單可以從物理真止中獵與理性死習(xí),減強(qiáng)探供本領(lǐng)戰(zhàn)培養(yǎng)動(dòng)抄本領(lǐng),并且物理真止正在刪減物理教學(xué)的定睹意義性圓里也有著無(wú)足沉重的做用。跟著今世科教妙技及策繪機(jī)妙技的飛速死少,策繪機(jī)正在協(xié)助物理真止教學(xué)中,如模擬真止過(guò)程、演示真止本理、舉止數(shù)據(jù)處理、真止操做戰(zhàn)測(cè)量等圓里皆有了廣泛的使用,那也有力天增進(jìn)了真止教學(xué)

2、的改革程序。正在策繪機(jī)協(xié)助物理真止教學(xué)中,AI課件正在協(xié)助真止教學(xué)中起著無(wú)足沉重的做用。物理真止AI課件模擬真止過(guò)程、演示真止本理、舉止真止操做等的仿真程度越下,對(duì)真止教學(xué)的成果影響便越好。如今,教師多以Flash等工具去制做多媒體真止講講課件,許多情況下沒(méi)有能模擬真止過(guò)程,越舉事真現(xiàn)舉止真止操做,照真現(xiàn)曲流電路中的滑動(dòng)變阻器按照滑塊的挪動(dòng)去及時(shí)準(zhǔn)確天操做電路,真現(xiàn)曲流電路的仿真操做。本文將要介紹正在penGL情況下,真止室用滑動(dòng)變阻器的圓案思路戰(zhàn)真現(xiàn)要收。penGL是一個(gè)財(cái)產(chǎn)標(biāo)準(zhǔn)的三維策繪機(jī)圖形硬件接心,是好國(guó)初級(jí)圖形戰(zhàn)下機(jī)能策繪機(jī)系統(tǒng)公司SGL開拓的三維圖形庫(kù)。它真踐上是與圖形硬件完好無(wú)閉

3、的程序圓案API,自力于操做系統(tǒng),有著強(qiáng)衰的圖形成效戰(zhàn)良好的跨仄臺(tái)移植本領(lǐng),具有牢靠性、可擴(kuò)大性強(qiáng)、伸縮性好、靈敏性強(qiáng)、易用等特性。penGL真現(xiàn)兩維戰(zhàn)三維的初級(jí)圖形妙技,正在機(jī)能上表示得非常優(yōu)良,它包露建模、變動(dòng)、色彩形式設(shè)置、光照與材量設(shè)置、單緩存動(dòng)繪和更后代的本領(lǐng),如紋理映照、物體舉動(dòng)模糊等。penGL的那些本領(lǐng)為真現(xiàn)逼真的三維襯著成果,創(chuàng)坐交互的三維景沒(méi)有俗觀等供給了優(yōu)良的硬件工具。3.1需供闡收真止室用滑動(dòng)變阻器是曲流電路中最經(jīng)常使用的真止儀器之一。系統(tǒng)應(yīng)供給多種交互本領(lǐng),用戶戰(zhàn)系統(tǒng)的交互主要經(jīng)由過(guò)程鼠標(biāo)戰(zhàn)鍵盤舉止。鍵盤主要使用正在協(xié)助鼠標(biāo)舉止多個(gè)物體的挑選,其他的交互皆是用鼠標(biāo)去完

4、成。系統(tǒng)圓案中的滑動(dòng)變阻器可以大概按照所毗鄰正在電路中的接線柱戰(zhàn)滑塊的地位去及時(shí)準(zhǔn)確天改動(dòng)電路中的電阻,同時(shí)系統(tǒng)也必須供給將滑動(dòng)變阻器毗鄰到電路中的接心。3.2成效縮放戰(zhàn)挪動(dòng)。主要真現(xiàn)滑動(dòng)變阻器正在下低左右戰(zhàn)對(duì)角線標(biāo)的目的的縮放成效,可以經(jīng)由過(guò)程鼠標(biāo)的拖動(dòng)去完成如圖1。圖1鼠標(biāo)縮放圖象滑塊挪動(dòng)。滑動(dòng)變阻器正在電路中電阻的變化主假設(shè)經(jīng)由過(guò)程滑動(dòng)滑塊去真現(xiàn)的。正在準(zhǔn)確毗鄰的情況下,滑塊挪動(dòng)可以大概改動(dòng)滑動(dòng)變阻器正在電路中的有效電阻,從而真現(xiàn)變阻器正在電路中的限流、分壓做用等。本文中的滑塊挪動(dòng)成效是經(jīng)由過(guò)程正在滑塊上綁定一個(gè)面,那個(gè)面戰(zhàn)滑塊互相聯(lián)絡(luò)閉系去真現(xiàn)的,經(jīng)由過(guò)程鼠標(biāo)拖動(dòng)面去真現(xiàn)滑塊挪動(dòng),成果

5、如圖2所示。圖2操做鼠標(biāo)拖動(dòng)滑塊接線柱。滑動(dòng)變阻器正在電路中起到保護(hù)電路、限制電路電流戰(zhàn)分擔(dān)電壓等做用,是經(jīng)由過(guò)程操做接線柱將滑動(dòng)變阻器毗鄰到電路中去真現(xiàn)的,所以接線柱的毗鄰成效是必沒(méi)有成少的如圖3。圖3接線柱成效4.1紋理揭圖妙技紋理揭圖妙技又稱為紋理映照妙技,它是策繪機(jī)圖形教中廣泛使用的一項(xiàng)慌張妙技。本文選用紋理揭圖妙技是出于兩圓里的考慮,第一,操做penGL建模所創(chuàng)坐的幾中型沒(méi)有可以描摹物體的微沒(méi)有俗觀細(xì)節(jié),而操做紋理圖象可以抵達(dá)模擬物體表里豐富的細(xì)節(jié)的目的,正在很年夜程度上可以前進(jìn)圖形的真正在性;第兩,采與紋理映照的要收,可以很好天簡(jiǎn)化建模過(guò)程。本文中的滑動(dòng)變阻器中型,假設(shè)操做penG

6、L間接建模時(shí)有許多的細(xì)節(jié)需要表示,念要?jiǎng)?chuàng)坐出真正在感非常強(qiáng)的滑動(dòng)變阻器,需要的工作量是很年夜的,假設(shè)采與紋理映照,只需創(chuàng)坐簡(jiǎn)樸的模型。正在那里操做penGL繪制兩個(gè)簡(jiǎn)樸的正圓形模型,分別操做經(jīng)過(guò)處理的三維坐體成果很好的沒(méi)有露滑動(dòng)變阻器滑塊的圖片戰(zhàn)零丁的滑塊圖片揭到模型表里便可。相比力而止,操做紋理揭圖的工作量要小許多。紋理映照Textureap是將指定的圖象數(shù)據(jù)使用到一個(gè)幾圖元上,操做紋理繪制的一樣仄居程序?yàn)椋簩?dǎo)進(jìn)紋理,將紋理揭圖到幾圖形上。使用紋理繪制的第一步便是要將紋理載進(jìn)到內(nèi)存中,同時(shí)設(shè)置紋理圖象。上里的代碼能真現(xiàn)該成效::glGenTextures(1,_textureNaes);BI

7、TAPB;HBITAPhBp=(HBITAP):LadIage(NULL,_bpFile,IAGE_BITAP,0,0,LR_LADFRFILE|LR_REATEDIBSETIN);:Getbjet(hBp,sizef(B),B);:glBindTexture(GL_TEXTURE_2D,_textureNaes);glTexIage2D(GL_TEXTURE_2D,0,GL_RGB,B.bidth,B.bHEight,0,GL_BGR_EXT,GL_UNSIGNED_BYTE,B.bBits);其中_textureNaes表示的是需要載進(jìn)的紋理圖片的文件名參數(shù),可以真現(xiàn)對(duì)24位位圖文件的載進(jìn)

8、。正在將紋理使用到幾個(gè)圖形之前,借需要指定紋理時(shí)的過(guò)濾方法。幾圖形上將紋理揭圖到幾圖形上的閉鍵標(biāo)題問(wèn)題便是指定紋理坐標(biāo),紋理坐標(biāo)操做紋理圖象中的像素是按照甚么樣的方法映照到幾圖形上。penGL中指定紋理坐標(biāo)的函數(shù)是vidglTexrd1234sifdv(TYPErds),揭圖成果如圖4所示。圖4紋理揭圖成果4.2模板緩沖區(qū)的操做從圖4可以看到,紋理揭圖當(dāng)前,滑塊上有一局部紅色天域覆蓋了下一層的揭圖,使得兩個(gè)圖片沒(méi)有可以很好天交融正在一同,經(jīng)由過(guò)程操做penGL中的模板緩沖妙技可以挨面多么的標(biāo)題問(wèn)題,便是操做一個(gè)模板圖案去襯著一個(gè)沒(méi)有端圓的中形,將滑塊上的紅色天域去失落。正在真踐全國(guó)中,模板便是

9、一塊仄的紙板或其中材料,模板緩存的用處之一,便是將繪圖范圍限制正在屏幕的特定天域。模板緩存用去舉止龐年夜的掩模(asking)操做。一個(gè)龐年夜的中形可以存儲(chǔ)正在模板緩存里,然后繪制子序列操做可以操做模板緩存里的內(nèi)容去決議能可更新象素。操做模板緩存的操做要收為了操做penGL的模板成效,起尾必須操做仄臺(tái)特定的penGL設(shè)置過(guò)程懇供一個(gè)模板緩存區(qū)。正在以V+.NET為根柢的penGL仄臺(tái)中,是正在設(shè)置像素格局時(shí)正在PIXELFRATDESRIPTR規(guī)劃中指定的模板緩存,并且需要指定模板緩存的位數(shù)。假設(shè)操做GLUT,正在初初化表示形式時(shí)懇供一個(gè)模板緩存區(qū),上里的代碼設(shè)置了帶模板緩存的單緩存RGB色彩

10、緩存區(qū):glutInitDisplayde(GLUT_RGB|GLUT_DUBLE|GLUT_STENIL)。正在今世硬件放慢的penGL真踐中,模板操做相對(duì)較為快速,可是如故可以并且有需要操做glEnable/glDisable去及時(shí)翻開戰(zhàn)啟鎖模板測(cè)試成效。翻開模板測(cè)試當(dāng)前,繪圖只正在那些經(jīng)由過(guò)程了模板測(cè)試的地位舉止。正在舉止模板測(cè)試之前,指定要寫進(jìn)模板緩存區(qū)的拂拭值,經(jīng)由過(guò)程函數(shù)gllearStenil去完成,函數(shù)本型為vidgllearStenil(Glints)。模板測(cè)試的設(shè)置可以經(jīng)由過(guò)程上里的函數(shù)完成:vidglStenilFun(Glenufun,Glintref,Gluintas

11、k)。fun參數(shù)的值是陳述penGL如何把曾經(jīng)存儲(chǔ)正在模板緩存中的與ref參數(shù)所指定的值舉止比較。也可以指定一個(gè)掩碼,正在舉止比較之前,將指定的掩碼與ref值戰(zhàn)模板緩存區(qū)中的值舉止AND操做。正在繪圖之前,要確保模板緩存區(qū)被拂拭,挪用函數(shù)gllear()去拂拭緩存,函數(shù)本型為vidgllear(Glbitfieldask),正在拂拭操做中所操做的值是由前里的函數(shù)gllearStenil(Glints)設(shè)置的。正在啟用了模板測(cè)試以后,便操做glSteneFun函數(shù)的參數(shù)與存儲(chǔ)正在模板緩存區(qū)內(nèi)的值舉止測(cè)試。按照測(cè)試成果,值片段年夜要被寫進(jìn),年夜要丟棄。模板緩存區(qū)本人正在測(cè)試過(guò)程中也會(huì)舉止建正,進(jìn)進(jìn)

12、模板緩存區(qū)的值與決于如何挪用glStenilp函數(shù):vidglStenlp(Glenufail,Glenuzfail,Glenuzpass)。函數(shù)中的參數(shù)值陳述penGL假設(shè)模板測(cè)試得利,該當(dāng)如何建正模板緩存區(qū)的值。接下去要?jiǎng)?chuàng)坐模板圖案,本文中所創(chuàng)坐的模板圖案是滑塊中的紅色天域,操做自定義函數(shù)vidDraveRhestat()去真現(xiàn)。今世碼正在本文中操做模板緩存去真現(xiàn)去除滑動(dòng)變阻器滑塊中的紅色天域的真今世碼以下所示:glDraBuffer(GL_NNE);glEnable(GL_STENIL_TEST);gllearStenil(0 x1);glStenilFun(GL_ALAYS,0 x1,

13、0 x1);glStenilp(GL_ZER,GL_ZER,GL_ZER);gllear(GL_STENIL_BUFFER_BIT);DraPlygn();glDraBuffer(GL_BAK);glStenilFun(GL_EQUAL,0 x0,0 x1);glStenilp(GL_KEEP,GL_KEEP,GL_KEEP);Dra(_textureNaes);glDisable(GL_STENIL_TEST);其中Dra(_textureNaes)函數(shù)是自定義,完成對(duì)紋理圖片的繪制,_textureNaes表示的是需要載進(jìn)的紋理圖片的文件名參數(shù)。真現(xiàn)成果如圖5所示。今世碼中的函數(shù)DraPl

14、ygn()經(jīng)由過(guò)程上里的闡收可以曉得,操做模板緩存是為了去除滑塊中的紅色天域,而自定義函數(shù)DraPlygn()正在程序中的成效是用去創(chuàng)坐模板圖案,也便是正在函數(shù)中繪制滑塊中紅色天域以中的那局部天域,那局部是一個(gè)沒(méi)有端圓的多邊形。penGL中多邊形的創(chuàng)坐端圓,一是局部的多邊形皆必須是仄里的,兩是多邊性的邊必須沒(méi)有訂交,并且多邊形必須是凸的。按照第兩個(gè)端圓,函數(shù)DraPlygn()中繪制的多邊形必須是凸的,果而要把所要繪制的模板圖案分析成多個(gè)凸多邊形。繪制凸多邊形操做glBegin(GL_PLYGN)/glEnd()去完成,glBegin()與glEnd()之間用去指定所要繪制的凸多邊形的頂面坐標(biāo),而那些頂面坐標(biāo)可以經(jīng)由過(guò)程滑塊的紋

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論