2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩18頁(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、<p>  信息科學(xué)與工程學(xué)院課程設(shè)計(jì)任務(wù)書(shū)</p><p>  題 目: Z-Buffer隱面算法的實(shí)現(xiàn) </p><p>  姓 名: </p><p>  學(xué) 號(hào):

2、 </p><p>  專業(yè)班級(jí): 計(jì)算機(jī)科學(xué)與技術(shù)、2010級(jí)本1班 </p><p>  課 程: 計(jì)算機(jī)圖形學(xué) </p><p>  指導(dǎo)教師: 職稱: 講 師 </p><p>

3、  完成時(shí)間: 2012年 12 月----2013年 1 月</p><p>  2012年12 月30日</p><p><b>  目 錄</b></p><p><b>  第1章 引言1</b></p><p>  第2章 計(jì)算機(jī)圖形學(xué)的發(fā)展歷史2</p><

4、p>  2.1 智能CAD2</p><p>  2.2計(jì)算機(jī)美術(shù)與設(shè)計(jì)2</p><p>  2.2.1 計(jì)算機(jī)美術(shù)的發(fā)展2</p><p>  2.3計(jì)算機(jī)動(dòng)畫(huà)藝術(shù)3</p><p>  2.3.1歷史的回顧3</p><p>  2.4科學(xué)計(jì)算可視化4</p><p>&

5、lt;b>  2.5虛擬現(xiàn)實(shí)4</b></p><p>  第3章 計(jì)算機(jī)圖形學(xué)的研究方向6</p><p>  第4章 Z-Buffer隱面算法的相關(guān)原理7</p><p>  4.1 Z-Buffer隱面算法簡(jiǎn)介7</p><p>  4.2 Z-Buffer隱面算法程序7</p><p

6、>  第5章 系統(tǒng)設(shè)計(jì)的相關(guān)代碼8</p><p>  5.1坐標(biāo)設(shè)置函數(shù)的相應(yīng)代碼8</p><p>  5.2旋轉(zhuǎn)角度函數(shù)相應(yīng)代碼8</p><p>  5.3多邊形填充9</p><p>  第6章 系統(tǒng)的運(yùn)行效果12</p><p>  6.1運(yùn)行主界面12</p><

7、p>  6.2不同方向鍵的運(yùn)行效果13</p><p>  第7章 總結(jié)16</p><p><b>  第1章 引言</b></p><p>  計(jì)算機(jī)圖形學(xué)一個(gè)主要的目的就是要利用計(jì)算機(jī)產(chǎn)生令人賞心悅目的真實(shí)感圖形。為此,必須建立圖形所描述的場(chǎng)景的幾何表示,再用某種光照模型,計(jì)算在假想的光源、紋理、材質(zhì)屬性下的光照明效果。所以

8、計(jì)算機(jī)圖形學(xué)與另一門學(xué)科計(jì)算機(jī)輔助設(shè)計(jì)有著密切的關(guān)系。事實(shí)上,圖形學(xué)也把可以表示幾何場(chǎng)景的曲線曲面造型技術(shù)和實(shí)體造型技術(shù)作為其主要的研究?jī)?nèi)容。同時(shí),真實(shí)感圖形計(jì)算的結(jié)果是以數(shù)字圖像的方式提供的,計(jì)算機(jī)圖形學(xué)也就和圖像處理有著密切的關(guān)系。</p><p>  真實(shí)感圖形繪制過(guò)程中,由于投影變換失去了深度信息,往往導(dǎo)致圖形的二義性。要消除這類二義性,就必須在繪制時(shí)消除被遮擋的不可見(jiàn)的線或面,習(xí)慣上稱之為消除隱藏線和隱

9、藏面,或簡(jiǎn)稱為消隱,經(jīng)過(guò)消隱得到的投影圖稱為物體的真實(shí)圖形。</p><p>  計(jì)算機(jī)圖形學(xué)狹義上是一種研究基于物理定律、經(jīng)驗(yàn)方法以及認(rèn)知原理,使用各種數(shù)學(xué)算法處理二維或三維圖形數(shù)據(jù),生成可視數(shù)據(jù)表現(xiàn)的科學(xué)。它是計(jì)算機(jī)科學(xué)的一個(gè)分支領(lǐng)域與應(yīng)用方向,主要關(guān)注數(shù)字合成與操作視覺(jué)的圖形內(nèi)容。廣義上來(lái)看,計(jì)算機(jī)圖形學(xué)不僅包含了從三維圖形建模、繪制到動(dòng)畫(huà)的過(guò)程,同時(shí)也包括了對(duì)二維矢量圖形 以及圖像視頻融合處理的研究。 計(jì)

10、算機(jī)圖形學(xué)經(jīng)過(guò)將近40年的發(fā)展,已進(jìn)入了較為成熟的發(fā)展期。目前,其主要應(yīng)用領(lǐng)域包括計(jì)算機(jī)輔助設(shè)計(jì)與加工,影視動(dòng)漫,軍事仿真,醫(yī)學(xué)圖像處理,氣象、地質(zhì)、財(cái)經(jīng)和電磁等的科學(xué)可視化等。由于計(jì)算機(jī)圖形學(xué)在這些領(lǐng)域的成功運(yùn)用,特別是在迅猛發(fā)展的動(dòng)漫產(chǎn)業(yè)中,帶來(lái)了可觀的經(jīng)濟(jì)效益。動(dòng)漫產(chǎn)業(yè)是目前各國(guó)優(yōu)先發(fā)展的綠色產(chǎn)業(yè),具有高科技、高投入與高產(chǎn)出等特點(diǎn)。據(jù)統(tǒng)計(jì),截至2009年3月,美國(guó)動(dòng)畫(huà)夢(mèng)工廠所拍攝的三維動(dòng)畫(huà)片《怪物史萊克II》在預(yù)算為1.5億美元的

11、情況下,獲得了超過(guò)9.2億的全球累計(jì)票房。而我國(guó)在2008年度共制作完成的國(guó)產(chǎn)電視動(dòng)畫(huà)片249部,計(jì)131042分鐘,與2007年度相比增加了近28%。另一方面,由于這些領(lǐng)域應(yīng)用的推動(dòng),也給計(jì)算機(jī)圖形學(xué)的發(fā)展提供了新的發(fā)展機(jī)遇</p><p>  第2章 計(jì)算機(jī)圖形學(xué)的發(fā)展歷史</p><p><b>  2.1 智能CAD</b></p><p

12、>  CAD 的發(fā)展也顯現(xiàn)出智能化的趨勢(shì),就目前流行的大多數(shù)CAD軟件來(lái)看,主要功能是支持產(chǎn)品的后續(xù)階段一一工程圖的繪制和輸出,產(chǎn)品設(shè)計(jì)功能相對(duì)薄弱,利用AutoCAD最常用的功能還是交互式繪圖,如果要想進(jìn)行產(chǎn)品設(shè)計(jì),最基本的是要其中的AutoLis語(yǔ)言編寫(xiě)程序,有時(shí)還要用其他高級(jí)語(yǔ)言協(xié)助編寫(xiě),很不方便。而新一代的智能CAD系統(tǒng)可以實(shí)現(xiàn)從概念設(shè)計(jì)到結(jié)構(gòu)設(shè)計(jì)的全過(guò)程。例如,德國(guó)西門子公司開(kāi)發(fā)的Sigraph Design軟件可以實(shí)現(xiàn)

13、如下功能:①?gòu)囊婚_(kāi)始就可以用計(jì)算機(jī)設(shè)計(jì)草圖,不必耗時(shí)費(fèi)力的輸入精確的坐標(biāo)點(diǎn),能隨心所欲的修改,一旦結(jié)構(gòu)確定,給出正確的尺寸即得到滿意的圖紙;②這個(gè)軟件中具有關(guān)系數(shù)據(jù)結(jié)構(gòu),當(dāng)你改變圖紙的局部,相關(guān)部分自動(dòng)變化,在一個(gè)視圖上的修改,其他視圖自動(dòng)修改,甚至改變一個(gè)零件圖,相關(guān)的其它零件圖以及裝配圖的相關(guān)部分自動(dòng)修改:③在各個(gè)專業(yè)領(lǐng)域中,有一些常用件和標(biāo)準(zhǔn)件,因此,希望有一個(gè)參數(shù)化圖庫(kù)。而Sigraph不用編程只需畫(huà)一遍圖就能建成自己的圖庫(kù);④

14、Sigraph還可以實(shí)現(xiàn)產(chǎn)品設(shè)計(jì)的動(dòng)態(tài)模擬用于觀察設(shè)計(jì)的裝置在實(shí)際運(yùn)行中是否合理等等。</p><p>  智能CAD的另一個(gè)領(lǐng)域是工程圖紙的自動(dòng)輸入與智能識(shí)別,隨著CAD技術(shù)的迅速推廣應(yīng)用,各個(gè)工廠、設(shè)計(jì)院都需將成千上萬(wàn)張長(zhǎng)期積累下來(lái)的設(shè)計(jì)圖紙快速而準(zhǔn)確輸入計(jì)算機(jī),作為新產(chǎn)品開(kāi)發(fā)的技術(shù)資料。多年來(lái),CAD 中普遍采用的圖形輸入方法是圖形數(shù)字化儀交互輸入和鼠標(biāo)加鍵盤(pán)的交互輸入方法.很難適應(yīng)工程界大量圖紙輸入的迫切

15、需要。因此, 基于光電掃描儀的圖紙自動(dòng)輸入方法已成為國(guó)內(nèi)外CAD工作者的努力探索的新課題。但由于工程圖的智能識(shí)別涉及到計(jì)算機(jī)的硬件、計(jì)算機(jī)圖形學(xué)、模式識(shí)別及人工智能等高新技術(shù)內(nèi)容,使得研究工作的難點(diǎn)較大。工程圖的自動(dòng)輸入與智能識(shí)別是兩個(gè)密不可分的過(guò)程,用掃描儀將手繪圖紙輸入到計(jì)算機(jī)后,形成的是點(diǎn)陣圖象。</p><p>  2.2計(jì)算機(jī)美術(shù)與設(shè)計(jì)</p><p>  2.2.1 計(jì)算機(jī)美術(shù)

16、的發(fā)展   </p><p>  1952年.美國(guó)的Ben .Laposke用模擬計(jì)算機(jī)做的波型圖《電子抽象畫(huà)》預(yù)示著電腦美術(shù)的開(kāi)始(比計(jì)算機(jī)圖形學(xué)的正式確立還要早)。計(jì)算機(jī)美術(shù)的發(fā)展可分為三個(gè)階段: </p><p>  (1)早期探索階段(1952 1968年)主創(chuàng)人員大部分為科學(xué)家和工程師,作品以平面幾何圖形為主。1963年美國(guó)《計(jì)算機(jī)與自動(dòng)化》雜志開(kāi)始舉辦年度“計(jì)算機(jī)美術(shù)比賽”。

17、</p><p>  代表作品:1960年Wiuiam Ferrter為波音公司制作的人體工程學(xué)實(shí)驗(yàn)動(dòng)態(tài)模擬.模擬飛行員在飛機(jī)中各種情況;1963年Kenneth Know Iton的打印機(jī)作品《裸體》。1967年日本GTG小組的《回到方塊》。 </p><p>  (2)中期應(yīng)用階段(1968年~1983年)以1968年倫敦第一次世界計(jì)算機(jī)美術(shù)大展一“控制論珍寶 (Cybernehic

18、Serendipity1為標(biāo)志,進(jìn)入世界性研究與應(yīng)用階段;計(jì)算機(jī)與計(jì)算機(jī)圖形技術(shù)逐步成熟, 一些大學(xué)開(kāi)始設(shè)置相關(guān)課題, 出現(xiàn)了一些CAD應(yīng)用系統(tǒng)和成果, 三維造型系統(tǒng)產(chǎn)生并逐漸完善。代表作品:1983年美國(guó)IBM 研究所Richerd Voss設(shè)計(jì)出分形山。</p><p>  (3)應(yīng)用與普及階段(1984年~現(xiàn)在)以微機(jī)和工作站為平臺(tái)的個(gè)人計(jì)算機(jī)圖形系統(tǒng)逐漸走向成熟, 大批商業(yè)性美術(shù)(設(shè)計(jì))軟件面市; 以蘋(píng)果

19、公司的MAC 機(jī)和圖形化系統(tǒng)軟件為代表的桌面創(chuàng)意系統(tǒng)被廣泛接受,CAD成為美術(shù)設(shè)計(jì)領(lǐng)域的重要組成部分。代表作品:1990年Jefrey Shaw的交互圖形作品“易讀的城市f The legible city”。</p><p>  2.3計(jì)算機(jī)動(dòng)畫(huà)藝術(shù)</p><p>  2.3.1歷史的回顧 </p><p>  計(jì)算機(jī)動(dòng)畫(huà)技術(shù)的發(fā)展是和許多其它學(xué)科的發(fā)展密切相關(guān)

20、的。計(jì)算機(jī)圖形學(xué)、計(jì)算機(jī)繪畫(huà)、計(jì)算機(jī)音樂(lè)、計(jì)算機(jī)輔助設(shè)計(jì)、電影技術(shù)、電視技術(shù)、計(jì)算機(jī)軟件和硬件技術(shù)等眾多學(xué)科的最新成果都對(duì)計(jì)算機(jī)動(dòng)畫(huà)技術(shù)的研究和發(fā)展起著十分重要的推動(dòng)作用50年代到60年代之間,大部分的計(jì)算機(jī)繪畫(huà)藝術(shù)作品都是在打印機(jī)和繪圖儀上產(chǎn)生的。一直到60年代后期,才出現(xiàn)利用計(jì)算機(jī)顯示點(diǎn)陣的特性,通過(guò)精心地設(shè)計(jì)圖案來(lái)進(jìn)行計(jì)算機(jī)藝術(shù)創(chuàng)造的活動(dòng)。 </p><p>  70年代開(kāi)始.計(jì)算機(jī)藝術(shù)走向繁榮和成熟 19

21、73 年,在東京索尼公司舉辦了“首屆國(guó)際計(jì)算機(jī)藝術(shù)展覽會(huì)”80年代至今,計(jì)算機(jī)藝術(shù)的發(fā)展速度遠(yuǎn)遠(yuǎn)超出了人們的想象 在代表計(jì)算機(jī)圖形研究最高水平的歷屆SIGGRAPH年會(huì)上,精彩的計(jì)算機(jī)藝術(shù)作品層出不窮。另外,在此期間的奧斯卡獎(jiǎng)的獲獎(jiǎng)名單中,采用計(jì)算機(jī)特技制作電影頻頻上榜,大有舍我其誰(shuí)的感覺(jué)。在中國(guó),首屆計(jì)算機(jī)藝術(shù)研討會(huì)和作品展示活動(dòng)于1995年在北京舉行。它總結(jié)了近年來(lái)計(jì)算機(jī)藝術(shù)在中國(guó)的發(fā)展,對(duì)未來(lái)的工作起到了重要的推動(dòng)作用。 <

22、/p><p>  2.3.2在電影特技中的應(yīng)用</p><p>  計(jì)算機(jī)動(dòng)畫(huà)的一個(gè)重要應(yīng)用就是制作電影特技 可以說(shuō)電影特技的發(fā)展和計(jì)算機(jī)動(dòng)畫(huà)的發(fā)展是相互促進(jìn)的。1987年由著名的計(jì)算機(jī)動(dòng)畫(huà)專家塔爾曼夫婦領(lǐng)導(dǎo)的MIRA 實(shí)驗(yàn)室制作了一部七分鐘的計(jì)算機(jī)動(dòng)畫(huà)片《相會(huì)在蒙特利爾》 再現(xiàn)了國(guó)際影星瑪麗蓮·夢(mèng)露的風(fēng)采。1988年,美國(guó)電影《誰(shuí)陷害了兔子羅杰》 (Who Framed Roger

23、 Rabbit?)中二維動(dòng)畫(huà)人物和真實(shí)演員的完美結(jié)合,令人瞠目結(jié)舌、嘆為觀止 其中用了不少計(jì)算機(jī)動(dòng)畫(huà)處理。1991年美國(guó)電影《終結(jié)者II:世界末日》展現(xiàn)了奇妙的計(jì)算機(jī)技術(shù)。此外,還有《侏羅紀(jì)公園》(Jurassic Park)、《獅子王》、《玩具總動(dòng)員》(Toy Story)等。</p><p>  2.4科學(xué)計(jì)算可視化</p><p>  科學(xué)計(jì)算的可視化是發(fā)達(dá)國(guó)家八十年代后期提出并發(fā)展

24、起來(lái)的一門新興技術(shù),它將科學(xué)計(jì)算過(guò)程中及計(jì)算結(jié)果的數(shù)據(jù)轉(zhuǎn)換為幾何圖形及圖象信息在屏幕上顯示出來(lái)并進(jìn)行交互處理,成為發(fā)現(xiàn)和理解科學(xué)計(jì)算過(guò)程中各種現(xiàn)象的有力工具。 </p><p>  1987年2月英國(guó)國(guó)家科學(xué)基金會(huì)在華盛頓召開(kāi)了有關(guān)科學(xué)計(jì)算可視化的首次會(huì)議。會(huì)議一致認(rèn)為“將圖形和圖象技術(shù)應(yīng)用于科學(xué)計(jì)算是一個(gè)全新的領(lǐng)域” 科學(xué)家們不僅需要分析由計(jì)算機(jī)得出的計(jì)算數(shù)據(jù),而且需要了解在計(jì)算機(jī)過(guò)程中數(shù)據(jù)的變化。會(huì)議將這一技

25、術(shù)定名為“科學(xué)計(jì)算可視化(Visualization in Scientific Computing)”。科學(xué)計(jì)算可視化將圖形生成技術(shù)圖象理解技術(shù)結(jié)合在一起, 它即可理解送入計(jì)算機(jī)的圖象數(shù)據(jù).也可以從復(fù)雜的多維數(shù)據(jù)中產(chǎn)生圖形。它涉及到下列相互獨(dú)立的幾個(gè)領(lǐng)域:計(jì)算機(jī)圖形學(xué)、圖象處理、計(jì)算機(jī)視覺(jué)、計(jì)算機(jī)輔助設(shè)計(jì)及交互技術(shù)等??茖W(xué)計(jì)算可視按其實(shí)現(xiàn)的功能來(lái)分,可以分為三個(gè)檔次:(1)結(jié)果數(shù)據(jù)的后處理;(2)結(jié)果數(shù)據(jù)的實(shí)時(shí)跟蹤處理及顯示;(3)結(jié)

26、果數(shù)據(jù)的實(shí)時(shí)顯示及交互處理。</p><p><b>  2.5虛擬現(xiàn)實(shí)</b></p><p>  “虛擬現(xiàn)實(shí)”(Virtual Reality)- 詞是由美國(guó)噴氣推動(dòng)實(shí)驗(yàn)室(VPL)的創(chuàng)始人拉尼爾(Jaron Lanier)首先提出的 在克魯格(Myren Kruege)70年代中早期實(shí)驗(yàn)里.被稱為 人工現(xiàn)實(shí)”(Artificial reality);而在吉布森(

27、William Gibson)l984 年出版的科幻小說(shuō)Neuremanccr里,又被稱為“可控空間”(Cyberspaee)。虛擬現(xiàn)實(shí), 也育人稱之為虛擬環(huán)境(Virtual Environment)是美國(guó)國(guó)家航空和航天局及軍事部門為模擬而開(kāi)發(fā)的一門高新技術(shù) 它利用計(jì)算機(jī)圖形產(chǎn)生器,位置跟蹤器,多功能傳感器和控制器等有效地模擬實(shí)際場(chǎng)景和情形,從而能夠使觀察者產(chǎn)生一種真實(shí)的身臨其境的感覺(jué)虛擬環(huán)境由硬件和軟件組成,硬件部分主要包括:傳感器

28、(Sensors)、印象器(Efeeter)和連接侍感器與印象器 產(chǎn)生模擬物理環(huán)境的特殊硬件。利用虛擬現(xiàn)實(shí)技術(shù)產(chǎn)生虛擬現(xiàn)實(shí)環(huán)境的軟件需完成以下三個(gè)功能:建立作用器(Actors)以及物體的外形和動(dòng)力學(xué)模型:建立物體之間以及周圍環(huán)境之間接照牛頓運(yùn)動(dòng)定律所決定的相互作用;描述周圍環(huán)境的內(nèi)容特性 </p><p>  虛擬現(xiàn)實(shí)技術(shù)主要研究用計(jì)算機(jī)模擬(構(gòu)造)三維圖形空間,并使用戶能夠自然地與該空間進(jìn)行交互。它涉及很多科

29、學(xué)的知識(shí),對(duì)三維圖形處理技術(shù)的要求特別高。簡(jiǎn)單的虛擬現(xiàn)實(shí)系統(tǒng)早在70年代便被應(yīng)用于軍事領(lǐng)域,訓(xùn)練駕駛員。80年代后隨著計(jì)算機(jī)軟硬件技術(shù)的提高,它也得到重視并迅速發(fā)展。目前它已在航空航天、醫(yī)學(xué)、教育、藝術(shù)、建筑等領(lǐng)域得到初步的應(yīng)用。例如,1997年7月,美國(guó)航天局的旅居者號(hào)火星車著陸距地球約1.9億公里的火星。這輛在火星表面緩慢爬行的小車中并沒(méi)有駕駛員,它是由地球上的工程師通過(guò)虛擬現(xiàn)實(shí)系統(tǒng)操縱的。</p><p>

30、  第3章 計(jì)算機(jī)圖形學(xué)的研究方向</p><p>  計(jì)算機(jī)圖形學(xué)經(jīng)過(guò)將近40年的發(fā)展,已進(jìn)入了較為成熟的發(fā)展期。目前,其主要應(yīng)用領(lǐng)域包括計(jì)算機(jī)輔助設(shè)計(jì)與加工,影視動(dòng)漫,軍事仿真,醫(yī)學(xué)圖像處理,氣象、地質(zhì)、財(cái)經(jīng)和電磁等的科學(xué)可視化等。由于計(jì)算機(jī)圖形學(xué)在這些領(lǐng)域的成功運(yùn)用,特別是在迅猛發(fā)展的動(dòng)漫產(chǎn)業(yè)中,帶來(lái)了可觀的經(jīng)濟(jì)效益。動(dòng)漫產(chǎn)業(yè)是目前各國(guó)優(yōu)先發(fā)展的綠色產(chǎn)業(yè),具有高科技、高投入與高產(chǎn)出等特點(diǎn)。</p&g

31、t;<p>  從計(jì)算機(jī)圖形學(xué)目前學(xué)科發(fā)展來(lái)看,有以下幾個(gè)發(fā)展趨勢(shì): </p><p>  (1)與圖形硬件的發(fā)展緊密結(jié)合,突破實(shí)時(shí)高真實(shí)感、高分辨率渲染的技術(shù)難點(diǎn)。</p><p> ?。?) 研究和諧自然的三維模型建模方法。</p><p> ?。?) 利用日益增長(zhǎng)的計(jì)算性能,實(shí)現(xiàn)具有高度物理真實(shí)的動(dòng)態(tài)仿真。</p><p>

32、; ?。?) 研究多種高精度數(shù)據(jù)獲取與處理技術(shù),增強(qiáng)圖形技術(shù)的表現(xiàn)。</p><p> ?。?) 計(jì)算機(jī)圖形學(xué)與圖像視頻處理技術(shù)的結(jié)合。</p><p> ?。?) 從追求絕對(duì)的真實(shí)感向追求與強(qiáng)調(diào)圖形的表意性轉(zhuǎn)變</p><p>  第4章 Z-Buffer隱面算法的相關(guān)原理</p><p>  4.1 Z-Buffer隱面算法簡(jiǎn)介<

33、/p><p>  在這個(gè)算法里,不僅需要有幀緩存來(lái)存放每個(gè)像素的顏色值,還需要有一個(gè)深度緩存來(lái)存放每一個(gè)像素的深度值。</p><p>  Z緩沖器中每個(gè)單元的值是對(duì)應(yīng)像素點(diǎn)所反映對(duì)象的z坐標(biāo)值,初值取z的極小值;幀緩沖器每個(gè)單元的初值可放對(duì)應(yīng)背景顏色的值。圖形消隱的過(guò)程就是給幀緩沖器和Z緩沖器中相應(yīng)過(guò)程填值得過(guò)程。在把顯示對(duì)象的每個(gè)面上每一點(diǎn)的屬性(顏色或灰度)值填入幀緩沖器相應(yīng)單元前,要把

34、這點(diǎn)的z坐標(biāo)值和Z緩沖器中相應(yīng)單元的值進(jìn)行比較,只有前者大于后者時(shí)才改變幀緩沖器的該單元的值,同時(shí)Z緩沖器中相應(yīng)單元的值也要改成這點(diǎn)的z坐標(biāo)值。如果這點(diǎn)的z坐標(biāo)值小于Z緩沖器中的值,則說(shuō)明對(duì)應(yīng)像素已經(jīng)顯示了對(duì)象上一個(gè)點(diǎn)的屬性,改點(diǎn)要比考慮的點(diǎn)更接近觀察點(diǎn)。對(duì)顯示對(duì)象的每個(gè)面上的每個(gè)點(diǎn)都進(jìn)行上述處理后,便可得到消隱了隱藏面的圖。</p><p>  4.2 Z-Buffer隱面算法程序</p><

35、;p>  Z-Buffer()</p><p>  { 幀緩存全置為背景色;</p><p>  深度緩存全置為最小Z值;</p><p>  for(每一個(gè)多邊形)</p><p>  { 掃描轉(zhuǎn)換該多邊形;</p><p>  for(該多邊形所覆蓋的每個(gè)像素(x,y))</p>&

36、lt;p>  {計(jì)算該多邊形在該像素的深度值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算法在像素級(jí)上以近物取代遠(yuǎn)物,形體在屏幕上的出現(xiàn)順序是無(wú)關(guān)緊要的,這種取代算法有利于硬件實(shí)現(xiàn)。</p&

38、gt;<p>  第5章 系統(tǒng)設(shè)計(jì)的相關(guān)代碼</p><p>  5.1坐標(biāo)設(shè)置函數(shù)的相應(yīng)代碼</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);//自定義坐標(biāo)系</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ù)相應(yīng)代碼</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個(gè)頂點(diǎn)</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>  //計(jì)算直線deep增量</p><p>  doubleCurDeep=0.0;//當(dāng)前掃描線的深度</p><p>  doubleDeepStep=0.0;//當(dāng)前掃描線隨著x增長(zhǎng)的深度步長(zhǎng)</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>  //計(jì)算當(dāng)前面方程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>  //計(jì)算curDeep;從x=x

54、Min開(kāi)始計(jì)算,此時(shí)針對(duì)yi</p><p>  DeepStep=-A/C;</p><p>  HeadE=NULL;</p><p>  for(CurrentB=HeadB;CurrentB!=NULL;CurrentB=CurrentB->next)//訪問(wèn)所有桶結(jié)點(diǎn)</p><p>  {for(CurrentE=Curre

55、ntB->p;CurrentE!=NULL;CurrentE=CurrentE->next)//訪問(wèn)桶中排序前的邊結(jié)點(diǎn)</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);//將該邊插入臨時(shí)Aet表}</p><p>  AetOrder();//使得Aet表按照x遞增的順序存放</p><p&

57、gt;  T1=HeadE;//根據(jù)ymax拋棄掃描完的邊結(jié)點(diǎn)</p><p>  if(T1==NULL)</p><p>  { return;}</p><p>  while(CurrentB->ScanLine>=T1->yMax)//放棄該結(jié)點(diǎn),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)//跳過(guò)一個(gè)結(jié)點(diǎn)</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;//設(shè)置一個(gè)BOOL變量In,初始值為假</p><p>  double xb,xe;//掃描線的起點(diǎn)和終點(diǎn)</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;//每訪問(wèn)一個(gè)結(jié)點(diǎn),把In值取反一次}</p><p>  else//如果In值為真,則填充從當(dāng)前結(jié)點(diǎn)的x值開(kāi)始到下一結(jié)點(diǎn)的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])//如果新的采樣點(diǎn)的深度大于原采樣點(diǎn)的深度</p><p>  { ZB[ROUND(x)+200][Current

64、B->ScanLine+200]=CurDeep;//xy坐標(biāo)與數(shù)組下標(biāo)保持一致,加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)的運(yùn)行效果</p><p><b>  6.1運(yùn)行主界面</b></p><p>  程序代碼無(wú)錯(cuò)誤,執(zhí)行如圖6-1程序主界面所示</p><p>  圖 6-1

67、 程序主界面</p><p>  6.2不同方向鍵的運(yùn)行效果</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>  通過(guò)本學(xué)期計(jì)算機(jī)圖形學(xué)的學(xué)習(xí),對(duì)計(jì)算機(jī)圖形學(xué)的歷史、發(fā)展、研究方向、以及涉及的知識(shí)原理有了進(jìn)一步的了解。Buffer消隱算法在像素級(jí)上以近物取代遠(yuǎn)物,形體在屏幕上的出現(xiàn)次序是無(wú)關(guān)緊要的,這種取代算法實(shí)現(xiàn)起來(lái)遠(yuǎn)比總體排序靈活簡(jiǎn)單,有利于硬件實(shí)現(xiàn)。然而,Z-Buffer算法也存在缺點(diǎn):占用空間大,沒(méi)有利用圖形的相關(guān)性與連續(xù)性。<

69、;/p><p>  計(jì)算機(jī)圖形學(xué)主要目的就是利用計(jì)算機(jī)表達(dá)真實(shí)感圖形。經(jīng)過(guò)這學(xué)期圖形學(xué)的學(xué)習(xí),我對(duì)這門學(xué)科產(chǎn)生了興趣。</p><p>  在系統(tǒng)設(shè)計(jì)過(guò)程中,盡管過(guò)程中任由許多不會(huì)的地方,而且有待于今后的提高和改進(jìn),但我加深了對(duì)書(shū)本上知識(shí)的理解與掌握,同時(shí)也學(xué)到了很多書(shū)本上沒(méi)有東西,并積累了一些寶貴的經(jīng)驗(yàn),這對(duì)我以后的學(xué)習(xí)與工作是不無(wú)裨益的。這次課設(shè)用TC編寫(xiě),之前我對(duì)于TC還有很多不了解的地

溫馨提示

  • 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ù)僅提供信息存儲(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)論