版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 信息科學與工程學院課程設計任務書</p><p> 題 目: Z-Buffer隱面算法的實現(xiàn) </p><p> 姓 名: </p><p> 學 號:
2、 </p><p> 專業(yè)班級: 計算機科學與技術(shù)、2010級本1班 </p><p> 課 程: 計算機圖形學 </p><p> 指導教師: 職稱: 講 師 </p><p>
3、 完成時間: 2012年 12 月----2013年 1 月</p><p> 2012年12 月30日</p><p><b> 目 錄</b></p><p><b> 第1章 引言1</b></p><p> 第2章 計算機圖形學的發(fā)展歷史2</p><
4、p> 2.1 智能CAD2</p><p> 2.2計算機美術(shù)與設計2</p><p> 2.2.1 計算機美術(shù)的發(fā)展2</p><p> 2.3計算機動畫藝術(shù)3</p><p> 2.3.1歷史的回顧3</p><p> 2.4科學計算可視化4</p><p>&
5、lt;b> 2.5虛擬現(xiàn)實4</b></p><p> 第3章 計算機圖形學的研究方向6</p><p> 第4章 Z-Buffer隱面算法的相關(guān)原理7</p><p> 4.1 Z-Buffer隱面算法簡介7</p><p> 4.2 Z-Buffer隱面算法程序7</p><p
6、> 第5章 系統(tǒng)設計的相關(guān)代碼8</p><p> 5.1坐標設置函數(shù)的相應代碼8</p><p> 5.2旋轉(zhuǎn)角度函數(shù)相應代碼8</p><p> 5.3多邊形填充9</p><p> 第6章 系統(tǒng)的運行效果12</p><p> 6.1運行主界面12</p><
7、p> 6.2不同方向鍵的運行效果13</p><p> 第7章 總結(jié)16</p><p><b> 第1章 引言</b></p><p> 計算機圖形學一個主要的目的就是要利用計算機產(chǎn)生令人賞心悅目的真實感圖形。為此,必須建立圖形所描述的場景的幾何表示,再用某種光照模型,計算在假想的光源、紋理、材質(zhì)屬性下的光照明效果。所以
8、計算機圖形學與另一門學科計算機輔助設計有著密切的關(guān)系。事實上,圖形學也把可以表示幾何場景的曲線曲面造型技術(shù)和實體造型技術(shù)作為其主要的研究內(nèi)容。同時,真實感圖形計算的結(jié)果是以數(shù)字圖像的方式提供的,計算機圖形學也就和圖像處理有著密切的關(guān)系。</p><p> 真實感圖形繪制過程中,由于投影變換失去了深度信息,往往導致圖形的二義性。要消除這類二義性,就必須在繪制時消除被遮擋的不可見的線或面,習慣上稱之為消除隱藏線和隱
9、藏面,或簡稱為消隱,經(jīng)過消隱得到的投影圖稱為物體的真實圖形。</p><p> 計算機圖形學狹義上是一種研究基于物理定律、經(jīng)驗方法以及認知原理,使用各種數(shù)學算法處理二維或三維圖形數(shù)據(jù),生成可視數(shù)據(jù)表現(xiàn)的科學。它是計算機科學的一個分支領(lǐng)域與應用方向,主要關(guān)注數(shù)字合成與操作視覺的圖形內(nèi)容。廣義上來看,計算機圖形學不僅包含了從三維圖形建模、繪制到動畫的過程,同時也包括了對二維矢量圖形 以及圖像視頻融合處理的研究。 計
10、算機圖形學經(jīng)過將近40年的發(fā)展,已進入了較為成熟的發(fā)展期。目前,其主要應用領(lǐng)域包括計算機輔助設計與加工,影視動漫,軍事仿真,醫(yī)學圖像處理,氣象、地質(zhì)、財經(jīng)和電磁等的科學可視化等。由于計算機圖形學在這些領(lǐng)域的成功運用,特別是在迅猛發(fā)展的動漫產(chǎn)業(yè)中,帶來了可觀的經(jīng)濟效益。動漫產(chǎn)業(yè)是目前各國優(yōu)先發(fā)展的綠色產(chǎn)業(yè),具有高科技、高投入與高產(chǎn)出等特點。據(jù)統(tǒng)計,截至2009年3月,美國動畫夢工廠所拍攝的三維動畫片《怪物史萊克II》在預算為1.5億美元的
11、情況下,獲得了超過9.2億的全球累計票房。而我國在2008年度共制作完成的國產(chǎn)電視動畫片249部,計131042分鐘,與2007年度相比增加了近28%。另一方面,由于這些領(lǐng)域應用的推動,也給計算機圖形學的發(fā)展提供了新的發(fā)展機遇</p><p> 第2章 計算機圖形學的發(fā)展歷史</p><p><b> 2.1 智能CAD</b></p><p
12、> CAD 的發(fā)展也顯現(xiàn)出智能化的趨勢,就目前流行的大多數(shù)CAD軟件來看,主要功能是支持產(chǎn)品的后續(xù)階段一一工程圖的繪制和輸出,產(chǎn)品設計功能相對薄弱,利用AutoCAD最常用的功能還是交互式繪圖,如果要想進行產(chǎn)品設計,最基本的是要其中的AutoLis語言編寫程序,有時還要用其他高級語言協(xié)助編寫,很不方便。而新一代的智能CAD系統(tǒng)可以實現(xiàn)從概念設計到結(jié)構(gòu)設計的全過程。例如,德國西門子公司開發(fā)的Sigraph Design軟件可以實現(xiàn)
13、如下功能:①從一開始就可以用計算機設計草圖,不必耗時費力的輸入精確的坐標點,能隨心所欲的修改,一旦結(jié)構(gòu)確定,給出正確的尺寸即得到滿意的圖紙;②這個軟件中具有關(guān)系數(shù)據(jù)結(jié)構(gòu),當你改變圖紙的局部,相關(guān)部分自動變化,在一個視圖上的修改,其他視圖自動修改,甚至改變一個零件圖,相關(guān)的其它零件圖以及裝配圖的相關(guān)部分自動修改:③在各個專業(yè)領(lǐng)域中,有一些常用件和標準件,因此,希望有一個參數(shù)化圖庫。而Sigraph不用編程只需畫一遍圖就能建成自己的圖庫;④
14、Sigraph還可以實現(xiàn)產(chǎn)品設計的動態(tài)模擬用于觀察設計的裝置在實際運行中是否合理等等。</p><p> 智能CAD的另一個領(lǐng)域是工程圖紙的自動輸入與智能識別,隨著CAD技術(shù)的迅速推廣應用,各個工廠、設計院都需將成千上萬張長期積累下來的設計圖紙快速而準確輸入計算機,作為新產(chǎn)品開發(fā)的技術(shù)資料。多年來,CAD 中普遍采用的圖形輸入方法是圖形數(shù)字化儀交互輸入和鼠標加鍵盤的交互輸入方法.很難適應工程界大量圖紙輸入的迫切
15、需要。因此, 基于光電掃描儀的圖紙自動輸入方法已成為國內(nèi)外CAD工作者的努力探索的新課題。但由于工程圖的智能識別涉及到計算機的硬件、計算機圖形學、模式識別及人工智能等高新技術(shù)內(nèi)容,使得研究工作的難點較大。工程圖的自動輸入與智能識別是兩個密不可分的過程,用掃描儀將手繪圖紙輸入到計算機后,形成的是點陣圖象。</p><p> 2.2計算機美術(shù)與設計</p><p> 2.2.1 計算機美術(shù)
16、的發(fā)展 </p><p> 1952年.美國的Ben .Laposke用模擬計算機做的波型圖《電子抽象畫》預示著電腦美術(shù)的開始(比計算機圖形學的正式確立還要早)。計算機美術(shù)的發(fā)展可分為三個階段: </p><p> (1)早期探索階段(1952 1968年)主創(chuàng)人員大部分為科學家和工程師,作品以平面幾何圖形為主。1963年美國《計算機與自動化》雜志開始舉辦年度“計算機美術(shù)比賽”。
17、</p><p> 代表作品:1960年Wiuiam Ferrter為波音公司制作的人體工程學實驗動態(tài)模擬.模擬飛行員在飛機中各種情況;1963年Kenneth Know Iton的打印機作品《裸體》。1967年日本GTG小組的《回到方塊》。 </p><p> (2)中期應用階段(1968年~1983年)以1968年倫敦第一次世界計算機美術(shù)大展一“控制論珍寶 (Cybernehic
18、Serendipity1為標志,進入世界性研究與應用階段;計算機與計算機圖形技術(shù)逐步成熟, 一些大學開始設置相關(guān)課題, 出現(xiàn)了一些CAD應用系統(tǒng)和成果, 三維造型系統(tǒng)產(chǎn)生并逐漸完善。代表作品:1983年美國IBM 研究所Richerd Voss設計出分形山。</p><p> (3)應用與普及階段(1984年~現(xiàn)在)以微機和工作站為平臺的個人計算機圖形系統(tǒng)逐漸走向成熟, 大批商業(yè)性美術(shù)(設計)軟件面市; 以蘋果
19、公司的MAC 機和圖形化系統(tǒng)軟件為代表的桌面創(chuàng)意系統(tǒng)被廣泛接受,CAD成為美術(shù)設計領(lǐng)域的重要組成部分。代表作品:1990年Jefrey Shaw的交互圖形作品“易讀的城市f The legible city”。</p><p> 2.3計算機動畫藝術(shù)</p><p> 2.3.1歷史的回顧 </p><p> 計算機動畫技術(shù)的發(fā)展是和許多其它學科的發(fā)展密切相關(guān)
20、的。計算機圖形學、計算機繪畫、計算機音樂、計算機輔助設計、電影技術(shù)、電視技術(shù)、計算機軟件和硬件技術(shù)等眾多學科的最新成果都對計算機動畫技術(shù)的研究和發(fā)展起著十分重要的推動作用50年代到60年代之間,大部分的計算機繪畫藝術(shù)作品都是在打印機和繪圖儀上產(chǎn)生的。一直到60年代后期,才出現(xiàn)利用計算機顯示點陣的特性,通過精心地設計圖案來進行計算機藝術(shù)創(chuàng)造的活動。 </p><p> 70年代開始.計算機藝術(shù)走向繁榮和成熟 19
21、73 年,在東京索尼公司舉辦了“首屆國際計算機藝術(shù)展覽會”80年代至今,計算機藝術(shù)的發(fā)展速度遠遠超出了人們的想象 在代表計算機圖形研究最高水平的歷屆SIGGRAPH年會上,精彩的計算機藝術(shù)作品層出不窮。另外,在此期間的奧斯卡獎的獲獎名單中,采用計算機特技制作電影頻頻上榜,大有舍我其誰的感覺。在中國,首屆計算機藝術(shù)研討會和作品展示活動于1995年在北京舉行。它總結(jié)了近年來計算機藝術(shù)在中國的發(fā)展,對未來的工作起到了重要的推動作用。 <
22、/p><p> 2.3.2在電影特技中的應用</p><p> 計算機動畫的一個重要應用就是制作電影特技 可以說電影特技的發(fā)展和計算機動畫的發(fā)展是相互促進的。1987年由著名的計算機動畫專家塔爾曼夫婦領(lǐng)導的MIRA 實驗室制作了一部七分鐘的計算機動畫片《相會在蒙特利爾》 再現(xiàn)了國際影星瑪麗蓮·夢露的風采。1988年,美國電影《誰陷害了兔子羅杰》 (Who Framed Roger
23、 Rabbit?)中二維動畫人物和真實演員的完美結(jié)合,令人瞠目結(jié)舌、嘆為觀止 其中用了不少計算機動畫處理。1991年美國電影《終結(jié)者II:世界末日》展現(xiàn)了奇妙的計算機技術(shù)。此外,還有《侏羅紀公園》(Jurassic Park)、《獅子王》、《玩具總動員》(Toy Story)等。</p><p> 2.4科學計算可視化</p><p> 科學計算的可視化是發(fā)達國家八十年代后期提出并發(fā)展
24、起來的一門新興技術(shù),它將科學計算過程中及計算結(jié)果的數(shù)據(jù)轉(zhuǎn)換為幾何圖形及圖象信息在屏幕上顯示出來并進行交互處理,成為發(fā)現(xiàn)和理解科學計算過程中各種現(xiàn)象的有力工具。 </p><p> 1987年2月英國國家科學基金會在華盛頓召開了有關(guān)科學計算可視化的首次會議。會議一致認為“將圖形和圖象技術(shù)應用于科學計算是一個全新的領(lǐng)域” 科學家們不僅需要分析由計算機得出的計算數(shù)據(jù),而且需要了解在計算機過程中數(shù)據(jù)的變化。會議將這一技
25、術(shù)定名為“科學計算可視化(Visualization in Scientific Computing)”??茖W計算可視化將圖形生成技術(shù)圖象理解技術(shù)結(jié)合在一起, 它即可理解送入計算機的圖象數(shù)據(jù).也可以從復雜的多維數(shù)據(jù)中產(chǎn)生圖形。它涉及到下列相互獨立的幾個領(lǐng)域:計算機圖形學、圖象處理、計算機視覺、計算機輔助設計及交互技術(shù)等??茖W計算可視按其實現(xiàn)的功能來分,可以分為三個檔次:(1)結(jié)果數(shù)據(jù)的后處理;(2)結(jié)果數(shù)據(jù)的實時跟蹤處理及顯示;(3)結(jié)
26、果數(shù)據(jù)的實時顯示及交互處理。</p><p><b> 2.5虛擬現(xiàn)實</b></p><p> “虛擬現(xiàn)實”(Virtual Reality)- 詞是由美國噴氣推動實驗室(VPL)的創(chuàng)始人拉尼爾(Jaron Lanier)首先提出的 在克魯格(Myren Kruege)70年代中早期實驗里.被稱為 人工現(xiàn)實”(Artificial reality);而在吉布森(
27、William Gibson)l984 年出版的科幻小說Neuremanccr里,又被稱為“可控空間”(Cyberspaee)。虛擬現(xiàn)實, 也育人稱之為虛擬環(huán)境(Virtual Environment)是美國國家航空和航天局及軍事部門為模擬而開發(fā)的一門高新技術(shù) 它利用計算機圖形產(chǎn)生器,位置跟蹤器,多功能傳感器和控制器等有效地模擬實際場景和情形,從而能夠使觀察者產(chǎn)生一種真實的身臨其境的感覺虛擬環(huán)境由硬件和軟件組成,硬件部分主要包括:傳感器
28、(Sensors)、印象器(Efeeter)和連接侍感器與印象器 產(chǎn)生模擬物理環(huán)境的特殊硬件。利用虛擬現(xiàn)實技術(shù)產(chǎn)生虛擬現(xiàn)實環(huán)境的軟件需完成以下三個功能:建立作用器(Actors)以及物體的外形和動力學模型:建立物體之間以及周圍環(huán)境之間接照牛頓運動定律所決定的相互作用;描述周圍環(huán)境的內(nèi)容特性 </p><p> 虛擬現(xiàn)實技術(shù)主要研究用計算機模擬(構(gòu)造)三維圖形空間,并使用戶能夠自然地與該空間進行交互。它涉及很多科
29、學的知識,對三維圖形處理技術(shù)的要求特別高。簡單的虛擬現(xiàn)實系統(tǒng)早在70年代便被應用于軍事領(lǐng)域,訓練駕駛員。80年代后隨著計算機軟硬件技術(shù)的提高,它也得到重視并迅速發(fā)展。目前它已在航空航天、醫(yī)學、教育、藝術(shù)、建筑等領(lǐng)域得到初步的應用。例如,1997年7月,美國航天局的旅居者號火星車著陸距地球約1.9億公里的火星。這輛在火星表面緩慢爬行的小車中并沒有駕駛員,它是由地球上的工程師通過虛擬現(xiàn)實系統(tǒng)操縱的。</p><p>
30、 第3章 計算機圖形學的研究方向</p><p> 計算機圖形學經(jīng)過將近40年的發(fā)展,已進入了較為成熟的發(fā)展期。目前,其主要應用領(lǐng)域包括計算機輔助設計與加工,影視動漫,軍事仿真,醫(yī)學圖像處理,氣象、地質(zhì)、財經(jīng)和電磁等的科學可視化等。由于計算機圖形學在這些領(lǐng)域的成功運用,特別是在迅猛發(fā)展的動漫產(chǎn)業(yè)中,帶來了可觀的經(jīng)濟效益。動漫產(chǎn)業(yè)是目前各國優(yōu)先發(fā)展的綠色產(chǎn)業(yè),具有高科技、高投入與高產(chǎn)出等特點。</p&g
31、t;<p> 從計算機圖形學目前學科發(fā)展來看,有以下幾個發(fā)展趨勢: </p><p> (1)與圖形硬件的發(fā)展緊密結(jié)合,突破實時高真實感、高分辨率渲染的技術(shù)難點。</p><p> ?。?) 研究和諧自然的三維模型建模方法。</p><p> ?。?) 利用日益增長的計算性能,實現(xiàn)具有高度物理真實的動態(tài)仿真。</p><p>
32、; (4) 研究多種高精度數(shù)據(jù)獲取與處理技術(shù),增強圖形技術(shù)的表現(xiàn)。</p><p> (5) 計算機圖形學與圖像視頻處理技術(shù)的結(jié)合。</p><p> ?。?) 從追求絕對的真實感向追求與強調(diào)圖形的表意性轉(zhuǎn)變</p><p> 第4章 Z-Buffer隱面算法的相關(guān)原理</p><p> 4.1 Z-Buffer隱面算法簡介<
33、/p><p> 在這個算法里,不僅需要有幀緩存來存放每個像素的顏色值,還需要有一個深度緩存來存放每一個像素的深度值。</p><p> Z緩沖器中每個單元的值是對應像素點所反映對象的z坐標值,初值取z的極小值;幀緩沖器每個單元的初值可放對應背景顏色的值。圖形消隱的過程就是給幀緩沖器和Z緩沖器中相應過程填值得過程。在把顯示對象的每個面上每一點的屬性(顏色或灰度)值填入幀緩沖器相應單元前,要把
34、這點的z坐標值和Z緩沖器中相應單元的值進行比較,只有前者大于后者時才改變幀緩沖器的該單元的值,同時Z緩沖器中相應單元的值也要改成這點的z坐標值。如果這點的z坐標值小于Z緩沖器中的值,則說明對應像素已經(jīng)顯示了對象上一個點的屬性,改點要比考慮的點更接近觀察點。對顯示對象的每個面上的每個點都進行上述處理后,便可得到消隱了隱藏面的圖。</p><p> 4.2 Z-Buffer隱面算法程序</p><
35、;p> Z-Buffer()</p><p> { 幀緩存全置為背景色;</p><p> 深度緩存全置為最小Z值;</p><p> for(每一個多邊形)</p><p> { 掃描轉(zhuǎn)換該多邊形;</p><p> for(該多邊形所覆蓋的每個像素(x,y))</p>&
36、lt;p> {計算該多邊形在該像素的深度值Z(x,y) ;</p><p> if (Z(x,y)大于Z緩存在(x,y)的值)</p><p> { 把Z(x,y)存入Z緩存中的(x,y);</p><p> 把多邊形在(x,y)處的顏色值存入幀緩存的(x,y)處;</p><p><b> }</b>
37、;</p><p><b> } </b></p><p><b> } </b></p><p><b> }</b></p><p> Z-Buffer算法在像素級上以近物取代遠物,形體在屏幕上的出現(xiàn)順序是無關(guān)緊要的,這種取代算法有利于硬件實現(xiàn)。</p&
38、gt;<p> 第5章 系統(tǒng)設計的相關(guān)代碼</p><p> 5.1坐標設置函數(shù)的相應代碼</p><p><b> 該函數(shù)代碼如下:</b></p><p> void CTestView::ZBuffer({</p><p> CRect Rect;</p><p>
39、 GetClientRect(&Rect);</p><p> CClientDC dc(this);</p><p> dc.SetMapMode(MM_ANISOTROPIC);//自定義坐標系</p><p> dc.SetWindowExt(Rect.Width(),Rect.Height());</p><p> d
40、c.SetViewportExt(Rect.right,-Rect.bottom);//x軸垂直向右,y軸垂直向上</p><p> dc.SetViewportOrg(Rect.right/2,Rect.bottom/2);//屏幕中心為圓心</p><p> CDCMemDC;</p><p> MemDC.CreateCompatibleDC(Get
41、DC());</p><p> MemDC.SetMapMode(MM_ANISOTROPIC);</p><p> MemDC.SetWindowExt(Rect.Width(),Rect.Height());</p><p> MemDC.SetViewportExt(Rect.right,-Rect.bottom);</p><p&g
42、t; MemDC.SetViewportOrg(Rect.right/2,Rect.bottom/2);</p><p> CBitmap Bitmap,*OldBitmap;</p><p> Bitmap.LoadBitmap(IDB_BITMAP2);</p><p> OldBitmap=MemDC.SelectObject(&Bitmap)
43、;</p><p> MemDC.BitBlt(-Rect.right/2,-Rect.bottom/2,Rect.Width(),Rect.Height(),&Picture,-Rect.right/2,-Rect.bottom/2,SRCCOPY);</p><p> m_Paint(&MemDC);</p><p> dc.BitBlt(
44、-Rect.right/2,-Rect.bottom/2,Rect.right,Rect.bottom,&MemDC,-Rect.right/2,-Rect.bottom/2,SRCCOPY);</p><p> MemDC.SelectObject(OldBitmap);</p><p><b> }</b></p><p>
45、5.2旋轉(zhuǎn)角度函數(shù)相應代碼</p><p><b> 該函數(shù)代碼如下:</b></p><p> void CTestView::Angle()</p><p> {//將Boxx方向旋轉(zhuǎn)m_AngleX度,y方向旋轉(zhuǎn)m_AngleY度</p><p> for(int i=0;i<8;i++)//Box有
46、8個頂點</p><p><b> {</b></p><p> MyPointTmpPoint;</p><p> TmpPoint.x=m_OldBox.m_Point[i].x;</p><p> TmpPoint.y=ROUND(m_OldBox.m_Point[i].y*cos(m_AngleX*PI
47、/180)+m_OldBox.m_Point[i].z*sin(m_AngleX*PI/180));</p><p> TmpPoint.z=ROUND(-m_OldBox.m_Point[i].y*sin(m_AngleX*PI/180)+m_OldBox.m_Point[i].z*cos(m_AngleX*PI/180));</p><p> m_Box.m_Point[i].
48、x=ROUND(-TmpPoint.z*sin(m_AngleY*PI/180)+TmpPoint.x*cos(m_AngleY*PI/180));</p><p> m_Box.m_Point[i].y=TmpPoint.y;</p><p> m_Box.m_Point[i].z=TmpPoint.z*cos(m_AngleY*PI/180)+TmpPoint.x*sin(m_An
49、gleY*PI/180);</p><p><b> }</b></p><p><b> 5.3多邊形填充</b></p><p><b> 代碼如下:</b></p><p> void CTestView::PolygonFill(CDC* mdc) </p
50、><p><b> {</b></p><p> //計算直線deep增量</p><p> doubleCurDeep=0.0;//當前掃描線的深度</p><p> doubleDeepStep=0.0;//當前掃描線隨著x增長的深度步長</p><p> doubleA=0.0
51、;//平面方程系數(shù)A</p><p> doubleB=0.0;//平面方程系數(shù)B</p><p> doubleC=0.0;//平面方程系數(shù)C</p><p> doubleD=0.0;//平面方程系數(shù)D</p><p> //計算當前面方程Ax+By+Cz+D=0的系數(shù)</p><p> A=(P
52、oint[1].y-Point[2].y)*(Point[1].z-Point[3].z)-(Point[1].y-Point[3].y)*(Point[1].z-Point[2].z);</p><p> B=(Point[1].x-Point[3].x)*(Point[1].z-Point[2].z)-(Point[1].z-Point[3].z)*(Point[1].x-Point[2].x);</
53、p><p> C=(Point[1].x-Point[2].x)*(Point[1].y-Point[3].y)-(Point[1].x-Point[3].x)*(Point[1].y-Point[2].y);</p><p> D=-A*Point[1].x-B*Point[1].y-C*Point[1].z;</p><p> //計算curDeep;從x=x
54、Min開始計算,此時針對yi</p><p> DeepStep=-A/C;</p><p> HeadE=NULL;</p><p> for(CurrentB=HeadB;CurrentB!=NULL;CurrentB=CurrentB->next)//訪問所有桶結(jié)點</p><p> {for(CurrentE=Curre
55、ntB->p;CurrentE!=NULL;CurrentE=CurrentE->next)//訪問桶中排序前的邊結(jié)點</p><p> { Edge *TEdge=new Edge;</p><p> TEdge->x=CurrentE->x;</p><p> TEdge->yMax=CurrentE->yMax
56、;</p><p> TEdge->k=CurrentE->k;</p><p> TEdge->next=NULL;</p><p> AddAet(TEdge);//將該邊插入臨時Aet表}</p><p> AetOrder();//使得Aet表按照x遞增的順序存放</p><p&
57、gt; T1=HeadE;//根據(jù)ymax拋棄掃描完的邊結(jié)點</p><p> if(T1==NULL)</p><p> { return;}</p><p> while(CurrentB->ScanLine>=T1->yMax)//放棄該結(jié)點,Aet表指針后移</p><p> { T1=T1->
58、next;</p><p><b> HeadE=T1;</b></p><p> if(HeadE==NULL)</p><p> { return;} }</p><p> if(T1->next!=NULL)</p><p><b> { T2=T1;&l
59、t;/b></p><p> T1=T2->next;}</p><p> while(T1!=NULL)</p><p> { if(CurrentB->ScanLine>=T1->yMax)//跳過一個結(jié)點</p><p> { T2->next=T1->next;</p>
60、;<p> T1->next=NULL;</p><p> T1=T2->next; }</p><p><b> else</b></p><p> { T2=T1;</p><p> T1=T2->next;}}</p><p> BOOL I
61、n=false;//設置一個BOOL變量In,初始值為假</p><p> double xb,xe;//掃描線的起點和終點</p><p> for(T1=HeadE;T1!=NULL;T1=T1->next)//填充掃描線和多邊形相交的區(qū)間</p><p> { if(In==false)</p><p> { x
62、b=T1->x; CurDeep=-(xb*A+CurrentB->ScanLine*B+D)/C;//z=-(Ax+By-D)/C</p><p> In=true;//每訪問一個結(jié)點,把In值取反一次}</p><p> else//如果In值為真,則填充從當前結(jié)點的x值開始到下一結(jié)點的x值結(jié)束的區(qū)間</p><p> { x
63、e=T1->x;</p><p> for(double x=xb;x<=xe;x++){</p><p> if(CurDeep>=ZB[ROUND(x)+200][CurrentB->ScanLine+200])//如果新的采樣點的深度大于原采樣點的深度</p><p> { ZB[ROUND(x)+200][Current
64、B->ScanLine+200]=CurDeep;//xy坐標與數(shù)組下標保持一致,加200</p><p> mdc->SetPixel(ROUND(x),CurrentB->ScanLine,RGB[Face]);}</p><p> CurDeep+=DeepStep;}</p><p> In=false; }}</p&
65、gt;<p> for(T1=HeadE;T1!=NULL;T1=T1->next)//邊連貫性</p><p> { T1->x=T1->x+T1->k;//x=x+1/k } }</p><p> delete HeadB; </p><p> delete CurrentB;</p><
66、;p> delete CurrentE;</p><p> delete HeadE;}</p><p> 第6章 系統(tǒng)的運行效果</p><p><b> 6.1運行主界面</b></p><p> 程序代碼無錯誤,執(zhí)行如圖6-1程序主界面所示</p><p> 圖 6-1
67、 程序主界面</p><p> 6.2不同方向鍵的運行效果</p><p> 圖6-2 按下方向鍵“↑”所示界面</p><p> 圖6-3 按下方向鍵“↓”所示界面</p><p> 圖6-4按下方向鍵“←”所示界面</p><p> 圖6-4按下方向鍵“→”所示界面</p><p
68、><b> 第7章 總結(jié)</b></p><p> 通過本學期計算機圖形學的學習,對計算機圖形學的歷史、發(fā)展、研究方向、以及涉及的知識原理有了進一步的了解。Buffer消隱算法在像素級上以近物取代遠物,形體在屏幕上的出現(xiàn)次序是無關(guān)緊要的,這種取代算法實現(xiàn)起來遠比總體排序靈活簡單,有利于硬件實現(xiàn)。然而,Z-Buffer算法也存在缺點:占用空間大,沒有利用圖形的相關(guān)性與連續(xù)性。<
69、;/p><p> 計算機圖形學主要目的就是利用計算機表達真實感圖形。經(jīng)過這學期圖形學的學習,我對這門學科產(chǎn)生了興趣。</p><p> 在系統(tǒng)設計過程中,盡管過程中任由許多不會的地方,而且有待于今后的提高和改進,但我加深了對書本上知識的理解與掌握,同時也學到了很多書本上沒有東西,并積累了一些寶貴的經(jīng)驗,這對我以后的學習與工作是不無裨益的。這次課設用TC編寫,之前我對于TC還有很多不了解的地
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 圖形學課程設計-- 計算機圖形學
- 計算機圖形學課程設計--圖形學基礎(chǔ)圖形處理實現(xiàn)
- 計算機圖形學課程設計
- 計算機圖形學課程設計報告
- 計算機圖形學論文-計算機圖形學
- barsky直線裁剪算法計算機圖形學課程設計
- 計算機圖形學課程設計-有效邊表填充算法的實現(xiàn)
- 計算機圖形學課程設計--- 轉(zhuǎn)動鐘表
- 有效邊表填充算法的實現(xiàn)計算機圖形學課程設計
- 圖形學教案計算機圖形學a
- 計算機圖形學編程練習7z-buffering算法實現(xiàn)
- 計算機圖形學
- 計算機圖形學課程設計-- 彈跳的彩球動畫
- 計算機圖形學
- 計算機圖形學課程設計構(gòu)造完整系統(tǒng)
- 計算機圖形學課程設計——掃雷游戲程序設計
- 計算機圖形學課程設計--圓柱面圖像紋理映射算法
- 計算機圖形學簡介
- 計算機圖形學題庫
- 計算機圖形學答案
評論
0/150
提交評論