二維圖形裁剪的課程設計_第1頁
已閱讀1頁,還剩14頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  圖形學課程設計 </b></p><p>  課程設計名稱:各種二維圖形裁剪技術研究</p><p>  姓名: </p><p><b>  學號:</b></p><p><b>  學院:基礎學院</b></p>

2、<p>  班級:信息與計算科學2010-1</p><p><b>  指導老師:</b></p><p><b>  小組成員: </b></p><p><b>  目錄</b></p><p>  摘要 ……………………………………………………………2<

3、/p><p>  二維圖形裁剪……………………………………………………2</p><p>  2.1 裁剪的原理 …………………………………………………2</p><p>  2.2 裁剪的分類…………………………………………………3</p><p>  2.2.1.線段的裁剪………………………………………………3</p><

4、p>  2.2.2多邊形的裁剪……………………………………………5</p><p>  2.2.3.圓和曲線的裁剪…………………………………………6</p><p>  算法 ……………………………………………………………6</p><p>  3.1 裁剪算法………………………………………………………7</p><p>  3.2 裁

5、剪圓算法…………………………………………………9</p><p>  3.3 裁剪窗口是圓算法…………………………………………… 11</p><p>  4、心得體會…………………………………………………………12</p><p>  5、參考文獻…………………………………………………………12</p><p>  6、功能實現(xiàn)效果的圖片展

6、示……………………………………13</p><p><b>  1、摘要</b></p><p>  近幾十年來,計算機圖形學有了引人矚目的發(fā)展,它已廣泛應用于計算機輔助設計、電視廣告、動畫和仿真等許多領域并發(fā)揮著重要作用??梢哉f計算機圖形學已經(jīng)發(fā)展成為一門成熟的學科。在各種實踐應用中,計算機圖形學的許多基礎算法發(fā)揮著不可替代的重要作用,因此不斷提高和完善圖形學的基礎

7、算法至關重要。</p><p>  計算機圖形學是研究在計算機中如何構造圖形,并把圖形的描述數(shù)據(jù)(數(shù)學模型)通過指定的算法轉化為圖形顯示的學科。目前,計算機圖形學的主要研究對象包括:點、線、面——二維圖形學:體——三維圖形學以及場等的數(shù)學構造方法與其圖形顯示以及它們的變化情況。</p><p><b>  2、二維圖形裁剪</b></p><p&g

8、t;  在使用計算機處理圖形信息時,計算機內部存儲的圖形往往比較大,而屏幕顯示的只是圖的一部分。因此需要確定圖形中哪些部分落在顯示區(qū)之內,哪些落在顯示區(qū)之外,以便只顯示落在顯示區(qū)內的那部分圖形。</p><p>  從數(shù)據(jù)集合中抽取所需信息即識別指定區(qū)域內或區(qū)域外的圖形部分的過程稱為裁剪算法,簡稱裁剪。它是計算機圖形學中許多重要問題的基礎。裁剪典型的用途是確定場景或畫面中位于給定區(qū)域之內的部分。這一區(qū)域稱為裁剪窗

9、口。</p><p>  最簡單的裁剪方法是把各種圖形掃描轉換為點之后,再判斷各點是否在窗口內。但那樣太費時,一般不可取。這是因為有些圖形組成部分全部在窗口外,可以完全排除,不必進行掃描轉換。</p><p>  所以,一般采用先裁剪再掃描轉換的方法。</p><p>  裁剪的應用包括:從定義的場景中抽取出用于觀察的部分;在三維視圖中標識出可見面:防止線段或對象的

10、邊界混淆;使用實體造型來創(chuàng)建對象;顯示多窗口的環(huán)境;允許選擇圖形一部分進行復制、移動或刪除等繪圖操作。對于不同的應用,裁剪窗口可以是多邊形或包含有曲線邊界。 </p><p><b>  2.1裁剪的原理</b></p><p>  裁剪的基本目的是判斷圖形元素是否部分或全部落在窗口區(qū)域之內,如果是,則進一步求出位于窗口內的部分。裁剪處理包括兩個方面:判斷圖形元素是否

11、在窗口內以及求圖形元素與窗口的交。</p><p>  一般把窗口定義為矩形,由上、下、左、右四條邊圍成,即:(xL,yB),(xR,yT)。裁剪的實質就是決定圖形中哪些點、線段、文字以及多邊形在窗口之內。</p><p>  對于點(x,y),只要判斷兩對不等式:</p><p>  xL≤x≤xR,yB≤y≤yT</p><p>  若四

12、個不等式均成立。則點在矩形窗口之內;否則,點在矩形窗口之外。</p><p><b>  裁剪的分類</b></p><p>  裁剪算法大致包括對以下圖形的裁剪:</p><p>  ●線段的裁剪(線段)</p><p>  ●區(qū)域的裁剪(多邊形)</p><p>  ●區(qū)域的裁剪(圓和曲線)&

13、lt;/p><p>  2.2.1線段的裁剪</p><p>  線段與窗口的關系有如下三種:</p><p>  (1)線段在窗口內,線段不需剪裁,完全可見;</p><p> ?。?)線段在窗口外,即線段不需剪裁,完全不可見;</p><p> ?。?)線段部分在窗口內,部分在窗口外,即需要求出線段與窗框的交點,并將窗

14、口外的線段部分剪裁掉,只可見窗口內的直線部分。</p><p>  線段的裁剪算法就是要找出位于窗口內部的起始點和終止點的坐標。因矢量裁剪法對尋找起點和終點坐標的處理方法相同,下面以求始點坐標為例來說明線段矢量裁剪方法。</p><p>  在右圖中,窗口的四條邊界把XOY平面分成九個區(qū)域,分別用1到9對這九個窗口編號,設5號區(qū)域為相應的可見窗口區(qū),窗口的左下角點坐標(minX,minY)

15、,右上角點坐標為(maxX,maxY)。有一條矢量線段S,其起、終點的坐標分別為(Xs,Ys)和(Xe,Ye),則對線段S按矢量裁剪的算法步驟如下:</p><p>  1、若線段完全位于區(qū)域5以外的任意區(qū)域內或落在(1,2,3)(3,6,9)(7,8,9)(1,4,7)中任意一區(qū)域組內,即滿足下述條件之一:</p><p>  則線段S不在窗口內,不必作進一步的求交點處理,否則轉下一步。

16、    2、若線段S滿足minX≤Xs≤maxX且minX≤Ys≤maxY ,則線段的起點在窗口內,新的起點坐標(X,Y)即為(Xs,Ys);否則,按以下各步判斷S與窗口的關系以及解算其新起點坐標(X,Y)。    3、若Xs<minX,即起點(Xs,Ys)位于窗口左邊界的左邊,則:</p><p>  此時要作以下判斷: 

17、;     (1) 若起點(minY≤Y≤maxY),則(X,Y)求解有效;      (2) 若起點(Xs,Ys)位于4區(qū),且Xs>minY或Y>maxY,則線段S與窗口無交點;      (3) 若Y>maxY且Ys>maxY或者Y>

18、;minY且Ys<minY,則線段起點位于1或7區(qū)內,這時還有兩種情況:        (a)當起點在1區(qū)且Ye>maxY或當起點位于7區(qū)且Ye< minY時,線段與窗口沒有交點;否則還需作下面的判別;        (b)若Ys<minY,則:<

19、;/p><p>  若Ys>maxY,則:</p><p>  用(4-2-2)和(4-2-3)式求出的X若滿足minX≤X≤maxX,則(X,Y)的求解有效,否則線段與窗口仍無交點。   4、當Xs>maxX ,即線段起點位于窗口右界的右邊,可仿照上述過程求出線段與右邊界的交點。   5、若起點(Xs,Ys)位于2或

20、8區(qū)時,求解線段與窗口邊界的交點公式為(4-2-4)和(4-2-5)式。</p><p>  用式(4-2-4)和(4-2-5)求解得X在滿足minX≤X≤maxX時才有效,否則線段不在窗口內。    同理,可求解出線段在窗口內新的終點坐標。 2.2.2 多邊形的裁剪     多邊形是計算機制圖中常用的圖形元素,大到行政區(qū)域,

21、小到各種地物圖塊,都是多邊形元素。     多邊形的裁剪比直線要復雜得多。因為經(jīng)過裁剪后,多邊形的輪廓線仍要閉合,而裁剪后的邊數(shù)可能增加,也可能減少,或者被裁剪成幾個多邊形,這樣必須適當?shù)夭迦氪翱谶吔绮拍鼙3侄噙呅蔚姆忾]性。這就使得多邊形的裁剪不能簡單地用裁剪直線的方法來實現(xiàn)。     對于多邊形的裁剪,人們研究出了多種算法,其中薩瑟蘭德-霍奇曼(S

22、utherland-Hodgman)算法是根據(jù)相對于一條邊界線裁剪多邊形比較容易這一點,把整個多邊形先相對于窗口的第一條邊界裁剪,然后再把形成的新多邊形相對于窗口的第二條裁剪,如此進行到窗口的最后一條邊界,從而把多邊形相對于窗口的全部邊界進行了裁剪。</p><p>  其算法描述為:    1.取多邊形頂點Pi(i=1,2,…,n) ,將其相對于窗口的第一條邊界進行判別

23、,若點Pi位于邊界的靠窗口一側,則把Pi記錄到要輸出的多邊形頂點中,否則不作記錄。    2.檢查Pi點與Pi-1點(i=1時,檢查Pi與Pn點)是否位于窗口邊界的同一側。若是,Pi點記錄與否,隨Pi-1點是否記錄而定;否則計算出PiPi-1與窗口邊界的交點,并將它記錄到要輸出的多邊形的頂點中去。    3.如此而已判別所有的頂點P1P2…Pn后,得到一

24、個新的多邊形Q11,Q12,…,Qm,然后用新的多邊形重復上述步驟1、2,依次對窗口的第二、第三和第四條邊界進行判別,判別完后得到的多邊形Q14,Q24,…,Qm4即為裁剪的最后結果。</p><p>  如上圖所示,演示了多邊形的裁剪過程:</p><p> ?。?)首先對窗口的右邊界進行判別,從多邊形的頂點P1開始依次判斷。P1在右邊界不可見一側,故不記錄P1點,且P1和P6在右邊界同

25、側,則也不與右邊界求交點。      P2點在右邊界可見一側,且P2和P1在右邊界異側,因此求出P2P1與右邊界交點記作Q1,同時把P2點記錄下來作為(Q2)。      P3點在右邊界不可見一側,但P3和P2在右邊界異側,因此求出P3P2與右邊界交點記作Q3。    &#

26、160; P4點在右邊界可見一側,且P4和P3在右邊界異側,因此求出P4P3與右邊界交點記作Q4,同時把P4點記錄下來作為(Q5)。      P5點在右邊界不可見一側,但P5和P4在右邊界異側,因此求出P5P4的右邊界交占記作Q6。      P6點在右邊界不可見一側,且P6和P5在右邊界同側,因此不求

27、交點也不記錄P6點。      這樣就得到了新多邊形Q1,(Q2),Q3,Q4,(Q5),Q6    (2)把新得到的多邊形Q1,(Q2),Q3,Q4,(Q5),Q6對窗口的下邊界進行判斷,同理可得到新的多邊形Q1,(Q2),Q3,Q4,Q5,Q6    (3)新得到的多邊形與窗口左邊<

28、/p><p><b>  3、算法</b></p><p><b>  3.1裁剪算法</b></p><p>  procedure TComputerGrapicsMainForm.Clip1Click(Sender: TObject);</p><p><b>  var</b&g

29、t;</p><p>  i,j,Outside,Clip:Integer;</p><p>  xystring:string;</p><p>  Label tryagain;</p><p>  Label NextLine;</p><p><b>  begin</b></p&

30、gt;<p>  //Window's coordinates</p><p>  W1:=90;W2:=270;w3:=40;w4:=160;</p><p>  //x coordinates y coordinates</p><p>  XY_Lines[1,1,1]:=110; XY_Lines[1,1,2]:

31、=10;</p><p>  XY_Lines[1,2,1]:=290; XY_Lines[1,2,2]:=70;</p><p>  XY_Lines[2,1,1]:=290; XY_Lines[2,1,2]:=70;</p><p>  XY_Lines[2,2,1]:=250; XY_Lines[2,2,2]:=190;</p><p

32、>  XY_Lines[3,1,1]:=250; XY_Lines[3,1,2]:=190;</p><p>  XY_Lines[3,2,1]:=70; XY_Lines[3,2,2]:=130;</p><p>  XY_Lines[4,1,1]:=70; XY_Lines[4,1,2]:=130;</p><p>  XY_Lines[4,2,

33、1]:=110; XY_Lines[4,2,2]:=10;</p><p>  XY_Lines[5,1,1]:=160; XY_Lines[5,1,2]:=10;</p><p>  XY_Lines[5,2,1]:=160; XY_Lines[5,2,2]:=180;</p><p>  XY_Lines[6,1,1]:=10; XY_Lines[6,

34、1,2]:=100;</p><p>  XY_Lines[6,2,1]:=300; XY_Lines[6,2,2]:=100;</p><p>  XY_Lines[7,1,1]:=10; XY_Lines[7,1,2]:=10;</p><p>  XY_Lines[7,2,1]:=30; XY_Lines[7,2,2]:=70;</p>&

35、lt;p>  XY_Lines[8,1,1]:=120; XY_Lines[8,1,2]:=70;</p><p>  XY_Lines[8,2,1]:=250; XY_Lines[8,2,2]:=150;</p><p>  Canvas.Pen.Color := clRed;//Draw 6 lines in red color</p><p>  F

36、or i:=1 to 8 do</p><p><b>  begin</b></p><p>  Canvas.MoveTo(10+XY_Lines[i,1,1],400-XY_Lines[i,1,2]);</p><p>  Canvas.LineTo(10+XY_Lines[i,2,1],400-XY_Lines[i,2,2]);<

37、/p><p>  end; //Draw clipping retangle window in yellow</p><p>  Canvas.Pen.Color := clYellow;//Draw window in yellow color</p><p>  Canvas.MoveTo(10+90,400-40);</p><p>  

38、Canvas.LineTo(10+270,400-40);</p><p>  Canvas.MoveTo(10+270,400-40);</p><p>  Canvas.LineTo(10+270,400-160);</p><p>  Canvas.MoveTo(10+270,400-160);</p><p>  Canvas.Lin

39、eTo(10+90,400-160);</p><p>  Canvas.MoveTo(10+90,400-160);</p><p>  Canvas.LineTo(10+90,400-40);</p><p>  for i:=1 to 8 do</p><p><b>  begin</b></p>

40、<p>  for j:=1 to 2 do</p><p><b>  begin</b></p><p>  X[j]:=XY_Lines[i,j,1];Y[j]:=XY_Lines[i,j,2];</p><p>  GetCodes(Sender,X[j],Y[j],j);//check points of lines is

41、outside the window?</p><p>  XYString:=IntToStr(L[j])</p><p>  +','+IntToStr(R[J])+</p><p>  ','+IntToStr(B[J])+</p><p>  ','+IntToStr(T[j]);<

42、;/p><p>  Memo1.Lines.add(XYString);//Show x,y coordinates to have a check</p><p><b>  end;</b></p><p>  for j:=1 to 2 do</p><p><b>  begin</b><

43、/p><p><b>  tryagain:</b></p><p>  Outside:=L[1]*L[2]+R[1]*R[2]+B[1]*B[2]+T[1]*T[2];</p><p>  if outside<>0 then goto NextLine;</p><p>  if Outside=0 the

44、n //the lines is inside the window</p><p><b>  begin</b></p><p>  Clip:=L[j]+R[j]+B[j]+T[j];</p><p>  if Clip<>0 then //Get new cliped coordinates of lines&l

45、t;/p><p><b>  begin</b></p><p>  ClipSubProgram(sender,j);goto tryagain;</p><p><b>  end;</b></p><p><b>  end;</b></p><p>

46、<b>  end;</b></p><p>  //Draw Cliped lines in blue color</p><p>  Canvas.Pen.Color:=clBlue;</p><p>  Canvas.MoveTo(10+trunc(X[1]),400-trunc(Y[1]));</p><p> 

47、 Canvas.LineTo(10+trunc(X[2]),400-trunc(Y[2]));</p><p><b>  NextLine:</b></p><p><b>  end;</b></p><p><b>  end;</b></p><p><b>

48、  3.2裁剪圓算法</b></p><p>  Procedure TComputerGrapicsMainForm.ClipCircle1Click(Sender: TObject);</p><p><b>  var</b></p><p>  i,j,x0,y0,RADIUS,Outside,Clip:Integer;&l

49、t;/p><p>  xystring:string;</p><p>  Label tryagain;</p><p>  Label NextLine;</p><p><b>  begin</b></p><p>  //Window's coordinates</p>

50、<p>  W1:=90;W2:=270;w3:=40;w4:=160;</p><p>  x0:=120;y0:=70; RADIUS:=120;</p><p>  //x coordinates y coordinates</p><p>  XY_Lines[1,1,1]:=110; XY_Lines[1,1,2]:=

51、10;</p><p>  XY_Lines[1,2,1]:=290; XY_Lines[1,2,2]:=70;</p><p>  XY_Lines[2,1,1]:=290; XY_Lines[2,1,2]:=70;</p><p>  XY_Lines[2,2,1]:=250; XY_Lines[2,2,2]:=190;</p><p&

52、gt;  XY_Lines[3,1,1]:=250; XY_Lines[3,1,2]:=190;</p><p>  XY_Lines[3,2,1]:=70; XY_Lines[3,2,2]:=130;</p><p>  XY_Lines[4,1,1]:=70; XY_Lines[4,1,2]:=130;</p><p>  XY_Lines[4,2,1

53、]:=110; XY_Lines[4,2,2]:=10;</p><p>  XY_Lines[5,1,1]:=160; XY_Lines[5,1,2]:=10;</p><p>  XY_Lines[5,2,1]:=160; XY_Lines[5,2,2]:=180;</p><p>  XY_Lines[6,1,1]:=10; XY_Lines[6,1

54、,2]:=100;</p><p>  XY_Lines[6,2,1]:=300; XY_Lines[6,2,2]:=100;</p><p>  XY_Lines[7,1,1]:=10; XY_Lines[7,1,2]:=10;</p><p>  XY_Lines[7,2,1]:=30; XY_Lines[7,2,2]:=70;</p>&l

55、t;p>  XY_Lines[8,1,1]:=120; XY_Lines[8,1,2]:=70;</p><p>  XY_Lines[8,2,1]:=250; XY_Lines[8,2,2]:=150;</p><p>  Canvas.Pen.Color := clRed;//Draw 6 lines in red color</p><p>  Fo

56、r i:=1 to 8 do</p><p><b>  begin</b></p><p>  Canvas.MoveTo(10+XY_Lines[i,1,1],400-XY_Lines[i,1,2]);</p><p>  Canvas.LineTo(10+XY_Lines[i,2,1],400-XY_Lines[i,2,2]);</

57、p><p>  end; //Draw clipping retangle window in yellow</p><p>  Canvas.Pen.Color := clYellow;//Draw window in yellow color</p><p>  Canvas.MoveTo(10+90,400-40);</p><p>  C

58、anvas.LineTo(10+270,400-40);</p><p>  Canvas.MoveTo(10+270,400-40);</p><p>  Canvas.LineTo(10+270,400-160);</p><p>  Canvas.MoveTo(10+270,400-160);</p><p>  Canvas.Line

59、To(10+90,400-160);</p><p>  Canvas.MoveTo(10+90,400-160);</p><p>  Canvas.LineTo(10+90,400-40);</p><p>  for i:=1 to 360 do</p><p><b>  begin</b></p>

60、<p>  XY_Lines[i,1,1]:=x0+TRUNC(RADIUS*cos(i*3.14159/180));</p><p>  XY_Lines[i,1,2]:=y0+TRUNC(RADIUS*sin(i*3.14159/180));</p><p>  XY_Lines[i,2,1]:=x0+TRUNC(RADIUS*cos((i-1)*3.14159/180))

61、;</p><p>  XY_Lines[i,2,2]:=y0+TRUNC(RADIUS*sin((i-1)*3.14159/180));</p><p>  for j:=1 to 2 do</p><p><b>  begin</b></p><p>  X[j]:=XY_Lines[i,j,1];Y[j]:=XY

62、_Lines[i,j,2];</p><p>  GetCodes(Sender,X[j],Y[j],j);//check points of lines is outside the window?</p><p>  XYString:=IntToStr(L[j])</p><p>  +','+IntToStr(R[J])+</p>

63、<p>  ','+IntToStr(B[J])+</p><p>  ','+IntToStr(T[j]);</p><p>  Memo1.Lines.add(XYString);//Show x,y coordinates to have a check</p><p><b>  end;</b&

64、gt;</p><p>  for j:=1 to 2 do</p><p><b>  begin</b></p><p><b>  tryagain:</b></p><p>  Outside:=L[1]*L[2]+R[1]*R[2]+B[1]*B[2]+T[1]*T[2];</p&g

65、t;<p>  if outside<>0 then goto NextLine;</p><p>  if Outside=0 then //the lines is inside the window</p><p><b>  begin</b></p><p>  Clip:=L[j]+R[j]+B[j]

66、+T[j];</p><p>  if Clip<>0 then //Get new cliped coordinates of lines</p><p><b>  begin</b></p><p>  ClipSubProgram(sender,j);goto tryagain;</p><p>

67、;<b>  end;</b></p><p><b>  end;</b></p><p><b>  end;</b></p><p>  //Draw Cliped lines in blue color</p><p>  Canvas.Pen.Color:=clBlu

68、e;</p><p>  Canvas.MoveTo(10+trunc(X[1]),400-trunc(Y[1]));</p><p>  Canvas.LineTo(10+trunc(X[2]),400-trunc(Y[2]));</p><p><b>  NextLine:</b></p><p><b>

69、;  end;</b></p><p><b>  end;</b></p><p>  3.3裁剪窗口是圓算法</p><p>  Procedure TComputerGrapicsMainForm.CircleWindow1Click(Sender: TObject);</p><p><b>

70、;  var</b></p><p>  x0,y0,Radius:integer;</p><p>  x1,y1,x2,y2,length:integer;</p><p>  i:integer;</p><p>  X,Y,dx,dy,Distance:Single;</p><p><b&g

71、t;  begin</b></p><p>  x0:=120;y0:=70; Radius:=120;</p><p>  canvas.Brush.Style:=bsClear;</p><p>  canvas.Ellipse(x0-Radius,y0-Radius,x0+Radius,y0+Radius);</p><p>

72、;  x1:=0;y1:=0;x2:=250;y2:=350;</p><p>  if (abs(x2-x1)>=abs(y2-y1)) then</p><p>  length:=abs(x2-x1)</p><p>  else length:=abs(y2-y1);</p><p>  dx:=(x2-x1)/length;&

73、lt;/p><p>  dy:=(y2-y1)/length;</p><p>  x:=x1+0.5; //here still can be discussed</p><p>  y:=y1+0.5; //here still can be discussed</p><p>  for i:=1 to length do</p>

74、;<p><b>  begin</b></p><p>  Distance:=sqrt((x0-x)*(x0-x)+(y0-y)*(y0-y));</p><p>  if (Distance<Radius) then</p><p>  canvas.Pixels [trunc(x),trunc(y)]:= clRed

75、;//Draw line in red color</p><p><b>  y:=y+dy;</b></p><p><b>  x:=x+dx;</b></p><p><b>  end;</b></p><p><b>  end;</b><

76、;/p><p><b>  end.</b></p><p><b>  4、心得體會</b></p><p>  學習圖形學已經(jīng)一個學期了,但是感覺沒有學到真正的知識。但是最近一星期的課程學習讓我受益匪淺,,使我更加扎實的掌握了有關計算機圖形學方面的知識,學會了一些簡單的delphi程序語言設計,并且感覺這是一種樂趣,開始喜

77、歡這門課程了。</p><p>  雖然在課程設計過程中雖然遇到了一些問題,但經(jīng)過一次又一次的思考,一遍又一遍的檢查終于找出了原因所在,也暴露出了前期我在這方面的知識欠缺和經(jīng)驗不足。實踐出真知,通過親自動手制作,不斷改正,不斷領悟,不斷獲取,使我們掌握的知識不再是紙上談兵。  我深刻體會到這門課程并不是輕而易舉就可也學好的,學習這門課程不僅需要細心嚴謹?shù)膽B(tài)度,還需要充分發(fā)揮我們的想象力,讓理論和實踐充分的結合在

78、一起,才能達到事半功倍的效果。細節(jié)決定成敗這句話在程序設計中最恰當不過了,因為一個小小的錯誤就可以使你的整個的程序無法進行,有時候絞盡腦汁也沒能找出錯誤所在,只好老老實實的從新進行編寫工作。所以課程不僅理論性強,實際操作性更強,沒有一個好的心態(tài)很難學好這門課程。我們學習的不僅是科學的方法,還包括用什么樣的態(tài)度去對待這門課程,并且讓自理論性和實踐性在自身得到充分的發(fā)揮,用細心嚴謹?shù)膽B(tài)度去認識事物,且希望通過這次的實踐操作可以讓我更好地學習

79、。</p><p><b>  5、參考文獻</b></p><p>  1、Delphi實用程序100例 段興主編 唐一丁等編著 人民郵電出版社;</p><p>  2、Delphi開發(fā)答疑300問 張增強編著 人民郵電出版社;</p><p>  3、Delphi數(shù)字圖像處理及高級運用 劉俊主編 科學出版社;

80、</p><p>  4、計算機圖形學算法基礎 David F.Rogers著 機械工業(yè)出版社</p><p>  5、計算機圖形學的二維裁剪算法研究 單會秋</p><p>  6、功能實現(xiàn)效果的圖片展示</p><p><b>  基本界面</b></p><p>  1

溫馨提示

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

評論

0/150

提交評論