1408060102黃露露----隱線算法_第1頁
1408060102黃露露----隱線算法_第2頁
1408060102黃露露----隱線算法_第3頁
1408060102黃露露----隱線算法_第4頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

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

文檔簡介

1、實(shí)驗(yàn)報(bào)告三線投影與隱線算法一、實(shí)驗(yàn)?zāi)康娜S投影:(1)掌握4*4矩陣乘法運(yùn)算的編程實(shí)現(xiàn)(2)掌握平移、比例、旋轉(zhuǎn)三種基本三維幾何變換矩陣生成(3)掌握正交投影圖的生成與繪制方法隱線算法:(1)掌握凸多變體的隱線算法二、實(shí)驗(yàn)要求三維投影:(1)三維坐標(biāo)系的原點(diǎn)位于屏幕中心,X軸水平向右,Y軸垂直向上,Z軸垂直于坐標(biāo)屏幕,指向屏幕外。(2)設(shè)計(jì)實(shí)現(xiàn)三維圖形變換類,具有平移、比例、旋轉(zhuǎn)三維幾何變換功能,以及正交投影變換功能(3)使用第二章的直線類繪制正四面體的三維線框模型,要求體心位于坐標(biāo)原點(diǎn),使正四面體同時(shí)繞Y軸勻速旋轉(zhuǎn),并相對于體心點(diǎn)來回縮放(4)使用雙緩沖機(jī)制,繪制正四面體三維線框模型的二維正

2、交投影圖,要求投影到XOY平面隱線算法:1)三維坐標(biāo)系的原點(diǎn)位于屏幕中心,X軸水平向右,Y軸垂直向上,Z軸垂直于坐標(biāo)屏幕,指向屏幕外。(2)以2.5節(jié)實(shí)驗(yàn)(實(shí)驗(yàn)5)繪制的動態(tài)正四面體線框圖為基礎(chǔ),通過隱線算法對正四面體的線框圖進(jìn)行消隱處理。(3)使用點(diǎn)表和面表的雙表結(jié)構(gòu),重新構(gòu)造正四面體的數(shù)據(jù)。三、實(shí)驗(yàn)步驟三維投影:(1)第一步:打開實(shí)驗(yàn)2工程文件直接使用實(shí)驗(yàn)2的MFC項(xiàng)目工程,及其中的直線類Cline;(2)第二步:建立三維齊次坐標(biāo)頂點(diǎn)類和邊表類(3)第三步:設(shè)計(jì)實(shí)現(xiàn)三維圖形幾何變換類(4)第四步:建立正四面體的點(diǎn)表和邊表(5)第五步:正四面體三維線框圖的二維正交投影圖隱線算法:(1)第一步

3、:打開實(shí)驗(yàn)5工程文件直接使用實(shí)驗(yàn)5的MFC項(xiàng)目工程,及其中的三維變換類CTrans3Q(2)第二步:建立表面類(3)第三步:建立正四面體的點(diǎn)表和面表(4)第四步:通過隱線算法繪制正四面體的消隱線框圖四、典型驗(yàn)證結(jié)果三維投影:4工eHvvrm隱線算法:五、核心代碼三維投影:voidCTrans3D:Translate(doubletx,doublety,doubletz)/平移變換矩陣(Identity();m_aT30=tx;m_aT31=ty;m_aT32=tz;MultiMatrix();)voidCTrans3D:Scale(doublesx,doublesy,doublesz)比例變換

4、矩陣Identity();m_aT00=sx;m_aT11=sy;m_aT22=sz;MultiMatrix();)voidCTrans3D:ProjXOY()/正交投影變換m_p2Screen=newCP2m_iNum;for(inti=0;i<m_iNum;i+)m_p2Screeni.x=m_p3Pointsi.x;m_p2Screeni.y=m_p3Pointsi.y;)隱線算法:classCVectorpublic:CVector();virtualCVector();CVector(CP3);CVector(CP3,CP3);doubleMold();/矢量的模CVector

5、Unit();單位矢量friendCVectoroperator+(CVector&,CVector&);/運(yùn)算符重載friendCVectoroperator-(CVector&,CVector&);friendCVectoroperator*(CVector&,double);friendCVectoroperator/(CVector&,double);friendCVectoroperator+=(CVector&,CVector&);friendCVectoroperator-=(CVector&,CVector

6、&);friendCVectoroperator*=(CVector&,CVector&);friendCVectoroperator/=(CVector&,double);frienddoubleDot(CVector&,CVector&);/矢量點(diǎn)積friendCVectoroperator*(CVector&,CVector&);/矢量叉積public:doublex,y,z;);繪制四面體的消隱線框圖CVectorVS(CP3(0,0,1);視矢量for(inti=0;i<4;i+)(/面法矢量CVectorV12(

7、tans.m_p3PointsFi.Points0,tans.m_p3PointsFi.Points1);CVectorV23(tans.m_p3PointsFi.Points0,tans.m_p3PointsFi.Points2);CVectorNormal=V12*V23;if(Dot(VS,Normal.Unit()>=0)/背面剔除(line->SetLineC010r(RGB(0,255,0);/綠色line->MoveTo(tans.m_p2ScreenFi.Points0);line->LineTo(tans.m_p2ScreenFi.Points1,&MemDC)

溫馨提示

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

評論

0/150

提交評論