圖形學實驗指導書_第1頁
圖形學實驗指導書_第2頁
圖形學實驗指導書_第3頁
圖形學實驗指導書_第4頁
圖形學實驗指導書_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、 計 算 機 圖 形 學實 驗 指 導 書 王衛(wèi)東 別小川 編寫適用專業(yè): 計算機科學與技術 江蘇科技大學電子信息學院2006年 7 月前 言計算機圖形學(Computer Graphics)是研究怎樣用數字計算機生成、處理和顯示圖形的一門學科。隨著計算機圖形學不斷發(fā)展,它的應用范圍也日趨廣泛。計算機圖形學課程目的及任務是著重介紹計算機圖形學的基本內容及原理與方法。它是計算機專業(yè)選修課。課程的主要內容有計算機圖形學的概論及應用,計算機用戶接口和交互技術,計算機圖形編程,二維圖形掃描算法與幾何變換,三維形體表示與投影變換,曲線與曲面造型技術,真實感圖形等。為了使學生更好地理解和深刻地掌握圖形的幾

2、何變換、光柵圖形的表示及處理方法、三維形體表示等方面的知識。并在此基礎上,訓練和培養(yǎng)學生對基本圖形系統(tǒng)的分析和設計能力,共設置了3項設計性實驗,分別是圖形的幾何變換、區(qū)域填充、曲線及曲面表示。圖形的幾何變換要求學生掌握圖形的平移、縮放、旋轉等基本變換知識。區(qū)域填充要求學生了解并掌握光柵圖形的表示方法,并實現種子算法或掃描線算法。曲線及曲面表示屬于三維圖形的造型技術。本指導書重點講述了各實驗的基本原理,并給出了詳細的實驗素材。實驗主要針對計算機科學與技術專業(yè),也可作為研究生的輔助實驗指導。目 錄實驗一:圖形的幾何變換3實驗二:圖形的區(qū)域填充6實驗三:曲線、曲面的生成8實驗四:動畫設計14附錄一、

3、學生實驗報告基本內容要求15實驗一:圖形的幾何變換實驗學時:4學時實驗類型:設計實驗要求:必修一、實驗目的二維圖形的平移、縮放、旋轉和投影變換(投影變換可在實驗三中實現)等是最基本的圖形變換,被廣泛用于計算機圖形學的各種應用程序中,本實驗通過算法分析以及程序設計實驗二維的圖形變換,以了解變換實現的方法。如可能也可進行裁剪設計。二、實驗內容掌握平移、縮放、旋轉變換的基本原理,理解線段裁剪的算法原理,并通過程序設計實現上述變換。建議采用VC+實現OpenGL程序設計。三、實驗原理、方法和手段1 圖形的平移在屏幕上顯示一個人或其它物體(如圖1所示),用交互操作方式使其在屏幕上沿水平和垂直方向移動Tx

4、和Ty,則有 x=x+Tx y=y+Ty其中:x與y為變換前圖形中某一點的坐標,x和y為變換后圖形中該點的坐標。其交互方式可先定義鍵值,然后操作功能鍵使其移動。2 圖形的縮放在屏幕上顯示一個帆船(使它生成在右下方),使其相對于屏幕坐標原點縮小s倍(即x方向和y方向均縮小s倍)。則有: x=x*s y=y*s注意:有時圖形縮放并不一定相對于原點,而是事先確定一個參考位置。一般情況下,參考點在圖形的左下角或中心。設參考點坐標為xf、yf則有變換公式 x=x*Sx+xf*(1-Sx)=xf+(x-xf)*Sx y=y*Sy+yf*(1-Sy)=yf+(y-yf)*Sy式中的x與y為變換前圖形中某一點

5、的坐標,x和y為變換后圖形中該點的坐標。當Sx>1和Sy>1時為放大倍數,Sx<1和Sy<1時為縮小倍數(但Sx和Sy必須大于零)。3 圖形的旋轉在屏幕上顯示一個汽車,根據自己確定的旋轉角度和旋轉中心對圖形進行旋轉。旋轉公式為 x=xf+(x-xf)*cos(angle)-(y-yf)*sin(angle) y=yf+(y-yf)*cos(angle)+(x-xf)*sin(angle)其中:xf,yf為圍繞旋轉的中心點的坐標。x,y為旋轉前圖形中某點的坐標,x和y為旋轉后圖形中該點的坐標。 4 裁剪對一個三角形進行裁剪,裁剪后的圖形應是一個封閉的圖形。可采用線段裁剪法

6、,其方法可用書上的線段相交求點的公式,確定可見線段予以保存,不在窗口的線段則應舍棄。 圖1四、實驗組織運行要求本實驗采用集中授課形式,每個同學獨立完成上述實驗要求。五、實驗條件每人一臺計算機獨立完成實驗。六、實驗步驟(1) 將圖形顯示在初始位置。(2) 對圖形各點按變換表達式作坐標變換,計算出各點變換后的相應點的坐標。(3) 將原來的圖形抹去。(4) 在新的位置顯示圖形。七、思考題 采用中點分割算法完成圖形的裁剪操作。八、實驗報告實驗報告主要包括實驗預習、實驗說明、程序代碼、實驗結果及分析等內容。實驗二:圖形的區(qū)域填充實驗學時:4學時實驗類型:設計實驗要求:必修一、實驗目的區(qū)域填充是指先將區(qū)域

7、內的一點(常稱為種子點)賦予給定顏色,然后將這種顏色擴展到整個區(qū)域內的過程。區(qū)域填充技術廣泛應用于交互式圖形、動畫和美術畫的計算機輔助制作中。本實驗采用遞歸填充算法或掃描線算法實現對光柵圖形的區(qū)域填充。通過本實驗,可以掌握光柵圖形編程的基本原理和方法。二、實驗內容掌握光柵圖形的表示方法,實現種子算法或掃描線算法。通過程序設計實現上述算法。建議采用VC+實現OpenGL程序設計。三、實驗原理、方法和手段1 遞歸算法在要填充的區(qū)域內取一點(X,Y)的當前顏色記為oldcolor,用要填充的顏色newcolor去取代,遞歸函數如下:procedure flood-fill(X,Y,oldcolor,

8、newcolor:integer);begin if getpixel(framebuffer,x,y)=oldcolor then begin setpixel(framebuffer,x,y,newcolor); flood-fill(X,Y+1,oldcolor,newcolor); flood-fill(X,Y-1,oldcolor,newcolor); flood-fill(X-1,Y,oldcolor,newcolor); flood-fill(X+1,Y,oldcolor,newcolor); endend2 掃描線算法掃描線算法的效率明顯高于遞歸算法,其算法的基本思想如下:(1

9、)(初始化)將算法設置的堆棧置為空,將給定的種子點(x,y)壓入堆棧。(2)(出棧)如果堆棧為空,算法結束;否則取棧頂元素(x,y)作為種子點。(3)(區(qū)段填充)從種子點(x,y)開始沿縱坐標為y的當前掃描線向左右兩個方向逐個象素進行填色,其值置為newcolor,直到抵達邊界為止。(4)(定范圍)以xleft和xright分別表示在步驟3中填充的區(qū)段兩端點的橫坐標。(5)(進棧)分別在與當前掃描線相鄰的上下兩條掃描線上,確定位于區(qū)間xleft,xright內的給定區(qū)域的區(qū)段。如果這些區(qū)段內的象素的顏色值為newcolor或者boundarycolor(邊界上象素的顏色值),則轉到步驟2,否則

10、取區(qū)段的右端點為種子壓入堆棧,再轉到步驟2繼續(xù)執(zhí)行。四、實驗組織運行要求本實驗采用集中授課形式,每個同學獨立完成上述實驗要求。五、實驗條件每人一臺計算機獨立完成實驗。六、實驗步驟(1) 將圖形顯示在初始位置。(2) 給定種子點的坐標。(3) 顯示從種子點開始的擴散過程。(4) 顯示填充后的圖形。七、思考題 如何實現光柵圖形的掃描轉換?八、實驗報告實驗報告主要包括實驗預習、實驗說明、程序代碼、實驗結果及分析等內容。實驗三:曲線、曲面的生成實驗學時:4學時實驗類型:設計實驗要求:必修一、實驗目的利用Bezier,B樣條或NuBer(非均勻有理B樣條)曲線,生成圖2茶壺,以加深對曲線曲面生成三維圖形

11、的原理,控制方法以及算法的實現(包括隱藏線,面的消除),要求生成的茶壺要光滑。二、實驗內容掌握曲線、曲面的表示方法,實現茶壺的三維造型設計。通過程序設計實現上述算法。建議采用VC+實現OpenGL程序設計。三、實驗原理、方法和手段采用三次Bezier 曲線或其它函數曲線生成圖2所示茶壺。利用三次Bezier曲線生成時,n=3,若寫成向量或寫成 t 的三次參數式為:其中:P0,P1,P2,P3是特征多邊形上四個頂點(控制點)的向量。若將其分解為二維平面中x、y方向的分量,則 圖2 茶壺以下分析以下茶壺的繪制方法: 可以假定壺體表面是一個旋轉面,因此只要在x-y 平面上找到用來生成旋轉面的基本曲線

12、就可以了。采用分段三次貝齊爾曲線,選十個控制點,它們的數據見表1(a),控制點位置與生成的曲線見圖3a。這條曲線由三段組成,分別由點1,2,3,4,4,5,6,7,7,8,9,10控制。注意到4,7公用,且3,4,5在一直線上,6,7,8也在一直線上,因而可知三段曲線拼接后有一階連續(xù)性。類似地,壺蓋也視為旋轉面,它的外輪廓由兩段貝齊爾曲線生成,分別由1,2,3,4和4,5,6,7控制。由于3,4,5共線,4為公共點,故也有一階連續(xù)性。這七個點的數據見表1(b),對應的輪廓線見圖3b。旋轉面的顯示可給定擬合后外形線上的一點(x0,y0),繞y軸旋轉得Y=Y0平面上一個圓。若只作沿Z軸平行投影變換

13、,即只去掉z分量,則它顯示成一線段。一個避免這種現象的簡便方法是將它們繞X軸適當旋轉同一角度,然后再投影到x-y平面上顯示。茶壺的壺嘴則要用貝齊爾曲面片來表示(也可以用曲線,但需插入控制點)。首先確定剖面的外輪廓線。這里有兩條,每一條也由七個控制點控制,它們的數據見表1(c),外輪廓線見圖3c,但是要注意現在要再增加二條線(每線也相應的有七個控制點),它們分別與兩外輪廓線有相同的x、y坐標,只是z的坐標不再是零,而是有變化,這個變化的方式是:與11,12(21,22)相對應的=0.66:與13,14,15(23,24,25)對應的為z =0.25:與另二點對應的為z =0.15,這樣壺嘴實際上

14、由二片貝齊爾曲面片(每片十六個控制點)組成。例如其中一片上的四個控制點分別為(11x,11y,0),(11x,11y,0.66),(21x,21y,0.66),(21x,21y,0),其中11x,11y分別指第十一個控制點x,y坐標。對每一曲面片的顯示,實際上可以顯示八條曲線,或者適當加密。類似地處理壺的把手,唯一與壺嘴有別處是另外兩線的z不隨控制點不同而變,即取定值z =0.3。數據見表1(d)。外輪廓線圖見3d,最后,壺底可以用半徑為1.5的圓盤來表示,容易想象它應如何加入這一圖形生成過程中。圖2就是用這種方法畫出的茶壺。 表1(a) 壺體控制點數據 表1(b) 壺蓋控制點數據xy10.0

15、3.020.83.030.02.740.22.5550.42.461.32.471.32.25xy11.40002.2500021.33752.3812531.43752.3812541.50002.2500051.75001.7250062.00001.2000072.00000.7500082.00000.3000091.50000.07500101.50000.0000表1(c) 壺嘴控制點數據xy(11) 1.7(21) 1.7(11) 1.27(21) 0.4(12) 2.6(22) 3.1(12) 1.275(22) 0.675(13) 2.3(23) 2.4(13) 1.95(2

16、3) 1.875(14) 2.7(24) 3.3(14) 2.25(24) 2.2(15) 2.8(25) 3.525(15) 2.325(25) 2.34(16) 2.9(26) 3.4(16) 2.325(26) 2.36(17) 2.8(27) 3.2(17) 2.25(27) 2.25表1(d) 壺嘴控制點數據xy(11) 1.6(21) 1.5(11) 1.875(21) 2.1(12) 2.3(22) 2.5(12) 1.875(22) 2.1(13) 2.7(23) 3.0(13) 1.875(23) 2.1(14) 2.7(24) 3.0(14) 1.65(24) 1.65(1

17、5) 2.7(25) 3.0(15) 1.425(25) 1.20(16) 2.5(26) 2.65(16) 0.975(26) 0.7875(17) 2.0(27) 1.90(17) 0.75(27) 0.45圖3b 壺蓋外輪廓線圖3a 壺體外輪廓線 圖3c 壺嘴外輪廓線 圖3d 壺把手外輪廓線四、實驗組織運行要求本實驗采用集中授課形式,每個同學獨立完成上述實驗要求。五、實驗條件每人一臺計算機獨立完成實驗。六、實驗步驟(1) 壺體及壺蓋的外輪廓線。(2) 旋轉生成壺體及壺蓋。(3) 完成壺嘴及把手的繪制。七、思考題 如何采用B樣條曲線曲面實現本實驗?八、實驗報告實驗報告主要包括實驗預習、實驗

18、說明、程序代碼、實驗結果及分析等內容。實驗四:動畫設計實驗學時:4學時實驗類型:綜合實驗要求:選做一、實驗目的通過實驗,了解動畫設計的原理、方法,并培養(yǎng)學生的想象能力、創(chuàng)新意識及動手能力,只要求采用二維圖形變換處理。二、實驗內容“警察抓小偷”是較早的有名的游戲動畫。然而,它遇到的關卡有百余處之多,我們希望學生自己發(fā)揮想象力,大膽創(chuàng)新,這是體現您的程序設計和創(chuàng)意能力的教好方法。三、實驗原理、方法和手段一輛警車(可以有警察人員),在公路、湖邊追趕一拿著東西的小偷,小偷逃跑可以用圖1姿勢。(1) 生成公路、湖邊、湖水、湖岸、房屋等。(2) 生成的警車可以移動旋轉。(3) 作平行移動的小偷。(4) 能航行到對岸的船或直升飛機(供逃跑用)。(5) 要求進行碰撞檢測,若捉到了小偷,檢測后發(fā)出信號,以示捉到。四、實驗組織運行要求本實驗采用開放形式,作為選做實驗,同學可以獨立或分組完成上述實驗要求。五、實驗條件每人一臺計算機完成實驗。附錄一、學生實驗報告基本內容要求所有實驗項目的報告必須以課程為單位裝訂成冊,原則上使用現行“實驗報告簿”(校園內有售)。實驗報告簿應事先準備好,用來做預習報告、實驗記錄和實驗報告,要求這三個過程在一個實驗報告中完成。1實驗預習在實驗前每位同學都需要對本

溫馨提示

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

評論

0/150

提交評論