![圖形學(xué)試驗(yàn)報(bào)告_第1頁(yè)](http://file4.renrendoc.com/view/a9405d37dff739bc10ccc9118472bbf7/a9405d37dff739bc10ccc9118472bbf71.gif)
![圖形學(xué)試驗(yàn)報(bào)告_第2頁(yè)](http://file4.renrendoc.com/view/a9405d37dff739bc10ccc9118472bbf7/a9405d37dff739bc10ccc9118472bbf72.gif)
![圖形學(xué)試驗(yàn)報(bào)告_第3頁(yè)](http://file4.renrendoc.com/view/a9405d37dff739bc10ccc9118472bbf7/a9405d37dff739bc10ccc9118472bbf73.gif)
![圖形學(xué)試驗(yàn)報(bào)告_第4頁(yè)](http://file4.renrendoc.com/view/a9405d37dff739bc10ccc9118472bbf7/a9405d37dff739bc10ccc9118472bbf74.gif)
![圖形學(xué)試驗(yàn)報(bào)告_第5頁(yè)](http://file4.renrendoc.com/view/a9405d37dff739bc10ccc9118472bbf7/a9405d37dff739bc10ccc9118472bbf75.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
本文格式為Word版,下載可任意編輯——圖形學(xué)試驗(yàn)報(bào)告
計(jì)算機(jī)圖形學(xué)
試驗(yàn)報(bào)告
姓名:張曉波
學(xué)號(hào):09008132
2023年12月
試驗(yàn)4通過層級(jí)建模,建立可交互三維物體試驗(yàn)?zāi)康?/p>
1.2.3.
進(jìn)一步了解OpenGL程序的結(jié)構(gòu)。
理解運(yùn)用OpenGL進(jìn)行層級(jí)建模的思想。
利用層級(jí)建模方式建立可以實(shí)現(xiàn)簡(jiǎn)單交互控制的三維物體。
試驗(yàn)要求
1.2.3.
明確試驗(yàn)?zāi)康?,按試?yàn)內(nèi)容及基本步驟完成試驗(yàn)。
在試驗(yàn)過程中,結(jié)合思考與探究中的問題,通過試驗(yàn)進(jìn)行理解。理解并把握本試驗(yàn)的內(nèi)容。
試驗(yàn)內(nèi)容及基本步驟
1.模型設(shè)計(jì)
考慮到可以表達(dá)層級(jí)建模的概念,設(shè)計(jì)了一個(gè)由6個(gè)圓形組成的“玩具蛇〞,每個(gè)圓形代表一個(gè)關(guān)節(jié),形彼此相切,半徑逐漸減小,最初狀態(tài)是組成一個(gè)直線,讓用戶可以交互控制每一個(gè)關(guān)節(jié),控制其X、Y、Z三軸的旋轉(zhuǎn)。與機(jī)器手臂的概念類似。要讓物體具有層次感,則考慮讓每一節(jié)的材質(zhì)都不同。
繪制前準(zhǔn)備:
-(void)drawRect:(NSRect)rect{=4;vy=4;vz=4;glViewport(0,0,610,610);glMatrixMode(GL_PROJECTION);glFrustum(-2,2,-2,2,3,20);glMatrixMode(GL_MODELVIEW);glLoadIdentity();gluLookAt(,vy,vz,0,0,0,0,1,0);glEnable(GL_CULL_FACE);glFrontFace(GL_CW);
}
glCullFace(GL_BACK);//繪圖控制glShadeModel(GL_SMOOTH);glEnable(GL_DEPTH_TEST);
x1=x2=x3=x4=x5=x6=y1=y2=y3=y4=y5=y6=z1=z2=z3=z4=z5=z6=0;
分析:采用18個(gè)變量來保存各個(gè)關(guān)節(jié)的旋轉(zhuǎn)狀況。因此每次繪制之前先單位化模型視圖矩陣,然后從底層的圓形畫起。由于每個(gè)關(guān)節(jié)之間的平移量是固定的,因此再畫下一個(gè)關(guān)節(jié)時(shí),只把前面關(guān)節(jié)的旋轉(zhuǎn)作為增量,而位移不需要,因此乘上視圖矩陣之后,應(yīng)先壓棧,然后在乘上平移矩陣,再繪制;循環(huán)下去則旋轉(zhuǎn)就成為增量,當(dāng)下次全部重繪之前在清除前面的狀態(tài),由于由變量x1~x6,y1~y6,z1~z6,保存著當(dāng)前的狀態(tài),所以可以正確繪制。此方法是基于棧的遍歷方法。在Mac的Cocoa環(huán)境里面提供的控件Slide來設(shè)置旋轉(zhuǎn)矩陣等的值,這些空間再改變值的時(shí)候可以連續(xù)的觸發(fā)函數(shù),因此將所有空間關(guān)聯(lián)到同一個(gè)繪制函數(shù)里,這樣有任何值改變就將調(diào)用繪制函數(shù),函數(shù)如下:
-(IBAction)controlsnake:(id)sender{=4;vy=4;vz=4;//視點(diǎn)初始值vrotatey=[ViewRotateYfloatValue];vzoom=[ViewZoomfloatValue];floatyline=pow((*+vz*vz),0.5);=yline*sin(((vrotatey+45)/180*pi));vz=yline*cos(((vrotatey+45)/180*pi));//繞Y軸旋轉(zhuǎn)=*(20-vzoom)/10;vy=vy*(20-vzoom)/10;vz=vz*(20-vzoom)/10;glMatrixMode(GL_MODELVIEW);glLoadIdentity();gluLookAt(,vy,vz,0,0,0,0,1,0);x1=[X1floatValue];x2=[X2floatValue];x3=[X3floatValue];x4=[X4floatValue];x5=[X5floatValue];x6=[X6floatValue];y1=[Y1floatValue];y2=[Y2floatValue];y3=[Y3floatValue];y4=[Y4floatValue];y5=[Y5floatValue];y6=[Y6floatValue];z1=[Z1floatValue];z2=[Z2floatValue];z3=[Z3floatValue];z4=[Z4floatValue];z5=[Z5floatValue];z6=[Z6floatValue];//保存六個(gè)圓形的旋轉(zhuǎn)矩陣glRotated(x1,1,0,0);glRotated(y1,0,1,0);glRotated(z1,0,0,1);glPushMatrix();GLfloatmat_ambient[]={ar,ag,ab,aa};GLfloatmat_diffuse[]={dr,dg,db,da};GLfloatmat_specular[]={sr,sg,sb,sa};GLfloatmat_shininess[]={ss};glMaterialfv(GL_FRONT,GL_AMBIENT,mat_ambient);//材料環(huán)境光顏色glMaterialfv(GL_FRONT,GL_DIFFUSE,mat_diffuse);//材料漫反射光顏色
}
glMaterialfv(GL_FRONT,GL_SPECULAR,mat_specular);//材料鏡面反射光顏色glMaterialfv(GL_FRONT,GL_SHININESS,mat_shininess);//鏡面指數(shù)glutSolidSphere(0.6,30,30);glPopMatrix();//1
glTranslated(0,1.1,0);glRotated(x2,1,0,0);glRotated(y2,0,1,0);glRotated(z2,0,0,1);glPushMatrix();
GLfloatmat_ambient2[]={ar2,ag2,ab2,aa2};GLfloatmat_diffuse2[]={dr2,dg2,db2,da2};GLfloatmat_specular2[]={sr2,sg2,sb2,sa2};GLfloatmat_shininess2[]={ss2};
glMaterialfv(GL_FRONT,GL_AMBIENT,mat_ambient2);//材料環(huán)境光顏色glMaterialfv(GL_FRONT,GL_DIFFUSE,mat_diffuse2);//材料漫反射光顏色
glMaterialfv(GL_FRONT,GL_SPECULAR,mat_specular2);//材料鏡面反射光顏色glMaterialfv(GL_FRONT,GL_SHININESS,mat_shininess2);//鏡面指數(shù)glutSolidSphere(0.5,30,30);glPopMatrix();//2
。。。。。。glFlush();
函數(shù)每次調(diào)用都會(huì)進(jìn)行所有參數(shù)的獲取,包括光照、材質(zhì)、視點(diǎn)等,為了便于觀測(cè),添加了一個(gè)繞Y軸旋轉(zhuǎn)視點(diǎn),以及移近移遠(yuǎn)視點(diǎn)的參數(shù),這樣可以更明白的看到模型的細(xì)節(jié)。程序界面如下:
2.實(shí)用手冊(cè):
程序左側(cè)是glView,右側(cè)是所有控件??梢哉{(diào)理光照位置,以及視點(diǎn)。中間的選擇框中先確定要調(diào)理的圓形,從1~6對(duì)應(yīng)的圓形從下至上。可以調(diào)理每一個(gè)圓形的材質(zhì),在Rotate框中可以選擇每一個(gè)圓形在三個(gè)軸方向上旋轉(zhuǎn)的角度。
右側(cè)最下方的兩個(gè)Slide可以使視點(diǎn)繞Y軸旋轉(zhuǎn),或者移近移遠(yuǎn)。下面是不同參數(shù)下的幾種效果:
試驗(yàn)小結(jié):
這次是在上次的基礎(chǔ)上完成的,所以GUI的界面的主題還是延續(xù)下來了,不過稍微作了改進(jìn),使操作起來比較便利。其實(shí)考慮用控件來交互的同時(shí),直接通過鍵盤也是不錯(cuò)的選擇,但是不足就是只能看到當(dāng)前的物體,而關(guān)于它的各種參數(shù)是看不到的,而且交互時(shí)控制較慢。這次的試驗(yàn)使用的層級(jí)建模遍歷是基于棧的,這個(gè)實(shí)現(xiàn)起來比較便利一點(diǎn),但是最大的毛病就是結(jié)構(gòu)比較固定,代碼都
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- R-YNT-3708-生命科學(xué)試劑-MCE-1793
- N-Butyl-Pentedrone-hydrochloride-生命科學(xué)試劑-MCE-8255
- Homarylamine-hydrochloride-生命科學(xué)試劑-MCE-8287
- 2025年度員工股份分配與業(yè)績(jī)考核協(xié)議
- 二零二五年度離婚財(cái)產(chǎn)協(xié)議-房產(chǎn)車輛資產(chǎn)分配
- 2025年度車輛外借責(zé)任免除及事故賠償協(xié)議
- 2025年度研學(xué)旅行文化體驗(yàn)合同
- 二零二五年度炊事員餐飲業(yè)未來趨勢(shì)預(yù)測(cè)聘用合同
- 2025年度蛋糕店線上線下銷售渠道拓展合同
- 施工現(xiàn)場(chǎng)施工防生物災(zāi)害威脅制度
- 2024年全國(guó)現(xiàn)場(chǎng)流行病學(xué)調(diào)查職業(yè)技能競(jìng)賽考試題庫(kù)-上部分(600題)
- 2025年中國(guó)鐵路設(shè)計(jì)集團(tuán)有限公司招聘筆試參考題庫(kù)含答案解析
- (一模)晉城市2025年高三年第一次模擬考試 物理試卷(含AB卷答案解析)
- 實(shí)驗(yàn)室5S管理培訓(xùn)
- 安徽省蚌埠市2025屆高三上學(xué)期第一次教學(xué)質(zhì)量檢查考試(1月)數(shù)學(xué)試題(蚌埠一模)(含答案)
- 醫(yī)院工程施工重難點(diǎn)分析及針對(duì)性措施
- 2025年春節(jié)安全專題培訓(xùn)(附2024年10起重特大事故案例)
- 2025年江蘇太倉(cāng)水務(wù)集團(tuán)招聘筆試參考題庫(kù)含答案解析
- 遼寧省沈陽(yáng)名校2025屆高三第一次模擬考試英語(yǔ)試卷含解析
- 智研咨詢-2025年中國(guó)生鮮農(nóng)產(chǎn)品行業(yè)市場(chǎng)全景調(diào)查、投資策略研究報(bào)告
- 員工賠償金保密協(xié)議書(2篇)
評(píng)論
0/150
提交評(píng)論