計算機輔助設計3(圖形變換)_第1頁
計算機輔助設計3(圖形變換)_第2頁
計算機輔助設計3(圖形變換)_第3頁
計算機輔助設計3(圖形變換)_第4頁
計算機輔助設計3(圖形變換)_第5頁
已閱讀5頁,還剩29頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

西南交通大學峨眉校區機械工程系圖形變換概述一、圖形的幾何變換----按照一定的規則,將一個幾何圖形上的點轉變為另一個幾何圖形上的點,從而實現圖形的變換。例:比例變換、平移變換等。計算機輔助設計第三章圖形變換二、圖形變換的方法思考:如何將原幾何圖形上的點轉變成新圖形上的點?---一定的對應關系。兩種方法:1、解析法:用函數的形式來表示幾何變換的規律。特點:較簡單,直觀。2、矩陣法:用矩陣的形式來表示幾何變換的規律。特點:適合于計算機進行程序處理。計算機輔助設計第三章圖形變換西南交通大學峨眉校區機械工程系例:比例變換:

解析法:x’=a*xy’=b*y

矩陣法:[x’y’]=[xy]

a

0

0

b

計算機輔助設計第三章圖形變換西南交通大學峨眉校區機械工程系西南交通大學峨眉校區機械工程系三、點的齊次坐標表示齊次坐標——將平面上一個點[x,y]表示為[u,v,t],其中x=u/t,y=v/t.

作用:①將避免因一個坐標的值過大,計算機不能處理的情況。如:計算機能處理的整數范圍為-32768~32767,若表示x=6000,可令:u=3000,t=1/2.②用齊次坐標矩陣來表示變換矩陣較方便。此時,一般令t=1,即:用齊次坐標[xy1]表示點[xy].計算機輔助設計第三章圖形變換四、變換矩陣

幾何變換原理:

點集合1一定的變換規律點集合

2

(原圖形)(新圖形)

P*T(變換矩陣)=P’

x1y11

x1’y1’1x2y21

a

b

0

x2’y2’1

........

*

cd

0

=

........

xnyn1dxdy1xn’yn’1

計算機輔助設計第三章圖形變換西南交通大學峨眉校區機械工程系1.

比例變換——將原圖形以原點為基點,按一定的比例進行縮放變換。變換關系:變換矩陣:

x’=ax

a0

0y’=

byT=

0

b0

0

01

即:P’

=P*Tx1’y1’1

x1y11

a00x2’y2’1=x2y21*

0b0x3’y3’1

x3y31

001

a、b>1,圖形放大;0<a、b<1,圖形縮小。

計算機輔助設計第三章圖形變換西南交通大學峨眉校區機械工程系編程時,調用同一繪圖子程序,則有:原圖形:新圖形:

pset(x1,y1);pset(x1’,y1’);line-(x2,y2);變換成line-(x2’,y2’);line-(x3,y3);

line-(x3’,y3’);line-(x1,y1);

line-(x1’,y1’);計算機輔助設計第三章圖形變換西南交通大學峨眉校區機械工程系2、平移變換——將原圖形平行移動到新位置。變換關系:變換矩陣:

x’=x+dx

10

0y’=y+dyT=01

0

dxdy1

計算機輔助設計第三章圖形變換西南交通大學峨眉校區機械工程系3、旋轉變換——將原圖形繞原點旋轉θ角,以逆時針方向為正方向。因:x’=Rcos(θ+α)

=Rcosθcosα-Rsinθsinα=

xcosθ-ysinθy’=Rsin(θ+α)

=Rsinθcosα+Rcosθsinα=xsinθ+ycosθ

變換關系:變換矩陣:

x’=xcosθ-ysinθcosθsinθ0y’=xsinθ+ycosθT=-sinθcosθ0

0

0

1計算機輔助設計第三章圖形變換西南交通大學峨眉校區機械工程系4、對稱變換①.關于X軸對稱變換關系:變換矩陣:

x’=x

100y’=-yT=

0-10001

計算機輔助設計第三章圖形變換西南交通大學峨眉校區機械工程系②.關于Y軸對稱變換關系:變換矩陣:

x’=-x-100y’=yT=010

001計算機輔助設計第三章圖形變換西南交通大學峨眉校區機械工程系③.關于原點對稱變換關系:變換矩陣:

x’=-x

-100y’=-yT=0-10

001計算機輔助設計第三章圖形變換西南交通大學峨眉校區機械工程系④.關于y=x直線對稱變換關系:變換矩陣:

x’=y010y’=xT=100

001計算機輔助設計第三章圖形變換西南交通大學峨眉校區機械工程系⑤.關于y=-x直線對稱變換關系:變換矩陣:

x’=-y0-10y’=-xT=-100

001計算機輔助設計第三章圖形變換西南交通大學峨眉校區機械工程系五.圖形的組合變換:

將圖形進行連續幾次變換,可進行下列變換:

P’=P*T1*T2*.....*Tn

或:P’=P(T1*T2*.....*Tn)

計算機輔助設計第三章圖形變換西南交通大學峨眉校區機械工程系例:將三角形ABC以A點(x1,y1)為基點,x方向放大2倍,y方向放大3倍。思路:將A點平移到原點進行放大將A點移回。結果:

x1’y1’z1’x1y111

00200100x2’y2’z2’=x2y21*010*030*0

1

0x3’y3’z3’x3y31

-x1–y11001x1y10計算機輔助設計第三章圖形變換西南交通大學峨眉校區機械工程系計算機輔助設計第三章圖形變換西南交通大學峨眉校區機械工程系計算機輔助設計第三章圖形變換西南交通大學峨眉校區機械工程系例:

輸入一個三角形的各個頂點坐標,繪制圖形。

再根據需要,輸入變換矩陣(數組),進行幾何變換,顯示變換后各個點的坐標,并繪制變換后的圖形。

Dimp(1To3,1To3)AsSingle‘定義三角形的三個頂點的坐標數組

'可考慮使用REDIM定義動態數組,實現對任意多邊形的繪制Dimch(1To3,1To3)AsSingle‘定義齊次變換矩陣的數組主程序:PrivateSubComOK1_Click()n=1'確定p數組(三角形頂點的坐標數組)

Fori=1To3Forj=1To3p(i,j)=Val(Text1(n).Text)n=n+1Nextj,I

Com計算.Enabled=True:Com繪圖.Enabled=True:Comok1.Enabled=FalseEndSub計算機輔助設計第三章圖形變換西南交通大學峨眉校區機械工程系環境初試化子程序:PrivateSubForm_Load()Comok1.Enabled=False:Comok2.Enabled=FalsePicture1.Scale(-1000,700)-(1000,-700)'自定義picture1圖片框的刻度Picture1.AutoRedraw=TruePicture1.BackColor=RGB(100,100,100)Picture1.DrawWidth=1

'用點劃線繪制坐標軸Picture1.DrawStyle=3Picture1.Line(-800,0)-(800,0)Picture1.Line(0,-600)-(0,600)n=1

'初始化

p,ch數組Fori=1To3Forj=1To3p(i,j)=Val(Text1(n).Text)ch(i,j)=Val(Text2(n).Text)n=n+1Nextj,iEndSub計算機輔助設計第三章圖形變換西南交通大學峨眉校區機械工程系輸入變換矩陣子程序:PrivateSubComok2_Click()n=1'確定ch數組(變換矩陣)

Fori=1To3Forj=1To3ch(i,j)=Val(Text2(n).Text)n=n+1Nextj,iCom計算.Enabled=True:Com繪圖.Enabled=True:Comok2.Enabled=FalseEndSub計算機輔助設計第三章圖形變換西南交通大學峨眉校區機械工程系變換計算子程序:PrivateSubCom計算_Click()Dimtemp(1To3,1To3)AsSingle'定義一個臨時暫存數組tempFori=1To3'矩陣乘法

Forj=1To3temp(i,j)=p(i,1)*ch(1,j)+p(i,2)*ch(2,j)+p(i,3)*ch(3,j)Nextj,in=1Fori=1To3Forj=1To3p(i,j)=temp(i,j)'將結果放回p數組,并顯示

Text1(n).Text=Str(temp(i,j))n=n+1Nextj,iCom計算.Enabled=True:Com繪圖.Enabled=True:Comok1.Enabled=FalseEndSub計算機輔助設計第三章圖形變換西南交通大學峨眉校區機械工程系繪圖子程序:PrivateSubCom繪圖_Click()Picture1.ForeColor=RGB(Int(Rnd*255),Int(Rnd*255),Int(Rnd*255))

'設置繪圖線條(顏色、寬度、線型)Picture1.DrawWidth=3Picture1.DrawStyle=0Picture1.Line(p(1,1),p(1,2))-(p(2,1),p(2,2))Picture1.Line-(p(3,1),p(3,2))Picture1.Line-(p(1,1),p(1,2))EndSub計算機輔助設計第三章圖形變換西南交通大學峨眉校區機械工程系PrivateSubText1_Change(IndexAsInteger)'修改坐標Com計算.Enabled=False:Com繪圖.Enabled=False:Comok1.Enabled=TrueEndSub--------------------------------------------------------------------------------------PrivateSubText2_Change(IndexAsInteger)'修改變換矩陣

Com計算.Enabled=False:Com繪圖.Enabled=False:Comok2.Enabled=TrueEndSub計算機輔助設計第三章圖形變換西南交通大學峨眉校區機械工程系二、命令組文件

利用命令組文件調用AutoCAD進行參數化繪圖

參閱教材《計算機輔助設計》P142

用高級語言開發AutoCAD接口的一種有效途徑是利用命令組文件。所謂命令組文件是指用戶根據所要畫出的圖形,預先用一系列AutoCAD命令和選擇項構成的命令序列,并以文本形式存儲的文件。它的擴展名為“.SCR"。文件中每一個空格均被解釋成一個回車,行尾的回車換行符也被解釋成一個回車。它的生成主要有兩種方式,一種是利用文本編輯器生成;另一種是通過高級語言的寫文件功能生成。

計算機輔助設計第三章圖形變換西南交通大學峨眉校區機械工程系注意:1)要求編寫命令組文件的用戶必須熟悉AutoCAD的命令提示順序。2)空格在命令組文件中有其確定的含義,AutoCAD往往將一個空格解釋為一個回車,因此用戶需特別注意空格的個數。

例如:有EXAMPLE.SCR命令組文件,其內容和格式如下:計算機輔助設計第三章圖形變換西南交通大學峨眉校區機械工程系在AutoCAD中調用已生成的SCR文件的方法:

(1)、啟動AutoCAD軟件。(2)、在命令行(command)輸入:Script(縮寫為SCR)

在彈出的“SelectScriptFile”對話框中選中需調用的SCR文件

計算機輔助設計第三章圖形變換西南交通大學峨眉校區機械工程系常用的參數化設計及繪圖的步驟:(1)、利用高級語言編寫機械零部件的參數化設計程序。(2)、調用設計程序,輸入零件的設計參數,進行設計計算,得到所設計零部件的尺寸數據,并且設計程序能根據計算出的尺寸數據自動產生SCR命令組文件。(3)、進入AutoCAD軟件環境,調用SCR文件生成所需的零件圖。計算機輔助設計第三章圖形變換西南交通大學峨眉校區機械工程系例1、讀取某個數據文件,將文件中的數據進行排序,并將結果存儲在一個新的文件中。OptionBase1'聲明數組的缺省下標為1Dimnum()AsInteger'定義動態數組DimnAsIntegerPrivateSub輸入_Click()Open"c:\1.txt"ForInputAs#1'打開并讀取文件,文件號為#1Input#1,n'讀取一個數據(第一個),賦予n(需要讀取的數據個數)ReDimnum(n)AsInteger'重新定義動態數組Fori=1Ton

Input#1,num(i)'依此讀取數據,賦予數組num()NextiClose#1

'關閉文件Fori=1Ton'數據排序(冒泡法)

Forj=1Ton-1Ifnum(j)>num(j+1)Thentemp=num(j):num(j)=num(j+1):num(j+1)=tempEndIfNextj,iEndSub計算機輔助設計第三章圖形變換西南交通大學峨眉校區機械工程系PrivateSub輸出_Click()Open"c:\2.txt"ForOutputAs#2'建立文件,文件號為#2Print#2,"TheSorteddatais:"'向建立的文件輸出數據Fori=1TonPrint#2,num(i);'向建立的文件輸出數據IfiMod3=0ThenPrint#2,'每三個數據換行NextiClose#2

'關閉文件EndSub計算機輔助設計第三章圖形變換西南交通大學峨眉校區機械工程系例2:

畫一矩形,兩圓,圓心在矩形水平方向的三等分處,垂直方向的二等分處

PrivateSub輸出_Click()X1#=Text1.Text'輸入數據Y1#=Text2.TextX2#=Text3.TextY2#=Text4.Textr#=Text5.TextFileName$="c:\"&Text6.Textrectangle_color$=Text7.Textcircle_color$=Text8.Textcx1#=X1+(X2-X1)/3'計算圓心坐標cx2#=X1+(X2-X1)*2/3cy#=(Y1+Y2)/2

接下頁計算機輔助設計第三章圖形變換西南交通大學峨眉校區機械工程系OpenFileName$ForOutputAs#1'輸出SC

溫馨提示

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

評論

0/150

提交評論