計(jì)算機(jī)輔助設(shè)計(jì)3(圖形變換)_第1頁(yè)
計(jì)算機(jī)輔助設(shè)計(jì)3(圖形變換)_第2頁(yè)
計(jì)算機(jī)輔助設(shè)計(jì)3(圖形變換)_第3頁(yè)
計(jì)算機(jī)輔助設(shè)計(jì)3(圖形變換)_第4頁(yè)
計(jì)算機(jī)輔助設(shè)計(jì)3(圖形變換)_第5頁(yè)
已閱讀5頁(yè),還剩29頁(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)介

西南交通大學(xué)峨眉校區(qū)機(jī)械工程系圖形變換概述一、圖形的幾何變換----按照一定的規(guī)則,將一個(gè)幾何圖形上的點(diǎn)轉(zhuǎn)變?yōu)榱硪粋€(gè)幾何圖形上的點(diǎn),從而實(shí)現(xiàn)圖形的變換。例:比例變換、平移變換等。計(jì)算機(jī)輔助設(shè)計(jì)第三章圖形變換二、圖形變換的方法思考:如何將原幾何圖形上的點(diǎn)轉(zhuǎn)變成新圖形上的點(diǎn)?---一定的對(duì)應(yīng)關(guān)系。兩種方法:1、解析法:用函數(shù)的形式來(lái)表示幾何變換的規(guī)律。特點(diǎn):較簡(jiǎn)單,直觀。2、矩陣法:用矩陣的形式來(lái)表示幾何變換的規(guī)律。特點(diǎn):適合于計(jì)算機(jī)進(jìn)行程序處理。計(jì)算機(jī)輔助設(shè)計(jì)第三章圖形變換西南交通大學(xué)峨眉校區(qū)機(jī)械工程系例:比例變換:

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

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

a

0

0

b

計(jì)算機(jī)輔助設(shè)計(jì)第三章圖形變換西南交通大學(xué)峨眉校區(qū)機(jī)械工程系西南交通大學(xué)峨眉校區(qū)機(jī)械工程系三、點(diǎn)的齊次坐標(biāo)表示齊次坐標(biāo)——將平面上一個(gè)點(diǎn)[x,y]表示為[u,v,t],其中x=u/t,y=v/t.

作用:①將避免因一個(gè)坐標(biāo)的值過(guò)大,計(jì)算機(jī)不能處理的情況。如:計(jì)算機(jī)能處理的整數(shù)范圍為-32768~32767,若表示x=6000,可令:u=3000,t=1/2.②用齊次坐標(biāo)矩陣來(lái)表示變換矩陣較方便。此時(shí),一般令t=1,即:用齊次坐標(biāo)[xy1]表示點(diǎn)[xy].計(jì)算機(jī)輔助設(shè)計(jì)第三章圖形變換四、變換矩陣

幾何變換原理:

點(diǎn)集合1一定的變換規(guī)律點(diǎn)集合

2

(原圖形)(新圖形)

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

x1y11

x1’y1’1x2y21

a

b

0

x2’y2’1

........

*

cd

0

=

........

xnyn1dxdy1xn’yn’1

計(jì)算機(jī)輔助設(shè)計(jì)第三章圖形變換西南交通大學(xué)峨眉校區(qū)機(jī)械工程系1.

比例變換——將原圖形以原點(diǎn)為基點(diǎn),按一定的比例進(jìn)行縮放變換。變換關(guān)系:變換矩陣:

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,圖形縮小。

計(jì)算機(jī)輔助設(shè)計(jì)第三章圖形變換西南交通大學(xué)峨眉校區(qū)機(jī)械工程系編程時(shí),調(diào)用同一繪圖子程序,則有:原圖形:新圖形:

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

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

line-(x1’,y1’);計(jì)算機(jī)輔助設(shè)計(jì)第三章圖形變換西南交通大學(xué)峨眉校區(qū)機(jī)械工程系2、平移變換——將原圖形平行移動(dòng)到新位置。變換關(guān)系:變換矩陣:

x’=x+dx

10

0y’=y+dyT=01

0

dxdy1

計(jì)算機(jī)輔助設(shè)計(jì)第三章圖形變換西南交通大學(xué)峨眉校區(qū)機(jī)械工程系3、旋轉(zhuǎn)變換——將原圖形繞原點(diǎn)旋轉(zhuǎn)θ角,以逆時(shí)針?lè)较驗(yàn)檎较?。因:x’=Rcos(θ+α)

=Rcosθcosα-Rsinθsinα=

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

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

變換關(guān)系:變換矩陣:

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

0

0

1計(jì)算機(jī)輔助設(shè)計(jì)第三章圖形變換西南交通大學(xué)峨眉校區(qū)機(jī)械工程系4、對(duì)稱變換①.關(guān)于X軸對(duì)稱變換關(guān)系:變換矩陣:

x’=x

100y’=-yT=

0-10001

計(jì)算機(jī)輔助設(shè)計(jì)第三章圖形變換西南交通大學(xué)峨眉校區(qū)機(jī)械工程系②.關(guān)于Y軸對(duì)稱變換關(guān)系:變換矩陣:

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

001計(jì)算機(jī)輔助設(shè)計(jì)第三章圖形變換西南交通大學(xué)峨眉校區(qū)機(jī)械工程系③.關(guān)于原點(diǎn)對(duì)稱變換關(guān)系:變換矩陣:

x’=-x

-100y’=-yT=0-10

001計(jì)算機(jī)輔助設(shè)計(jì)第三章圖形變換西南交通大學(xué)峨眉校區(qū)機(jī)械工程系④.關(guān)于y=x直線對(duì)稱變換關(guān)系:變換矩陣:

x’=y010y’=xT=100

001計(jì)算機(jī)輔助設(shè)計(jì)第三章圖形變換西南交通大學(xué)峨眉校區(qū)機(jī)械工程系⑤.關(guān)于y=-x直線對(duì)稱變換關(guān)系:變換矩陣:

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

001計(jì)算機(jī)輔助設(shè)計(jì)第三章圖形變換西南交通大學(xué)峨眉校區(qū)機(jī)械工程系五.圖形的組合變換:

將圖形進(jìn)行連續(xù)幾次變換,可進(jìn)行下列變換:

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

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

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

x1’y1’z1’x1y111

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

1

0x3’y3’z3’x3y31

-x1–y11001x1y10計(jì)算機(jī)輔助設(shè)計(jì)第三章圖形變換西南交通大學(xué)峨眉校區(qū)機(jī)械工程系計(jì)算機(jī)輔助設(shè)計(jì)第三章圖形變換西南交通大學(xué)峨眉校區(qū)機(jī)械工程系計(jì)算機(jī)輔助設(shè)計(jì)第三章圖形變換西南交通大學(xué)峨眉校區(qū)機(jī)械工程系例:

輸入一個(gè)三角形的各個(gè)頂點(diǎn)坐標(biāo),繪制圖形。

再根據(jù)需要,輸入變換矩陣(數(shù)組),進(jìn)行幾何變換,顯示變換后各個(gè)點(diǎn)的坐標(biāo),并繪制變換后的圖形。

Dimp(1To3,1To3)AsSingle‘定義三角形的三個(gè)頂點(diǎn)的坐標(biāo)數(shù)組

'可考慮使用REDIM定義動(dòng)態(tài)數(shù)組,實(shí)現(xiàn)對(duì)任意多邊形的繪制Dimch(1To3,1To3)AsSingle‘定義齊次變換矩陣的數(shù)組主程序:PrivateSubComOK1_Click()n=1'確定p數(shù)組(三角形頂點(diǎn)的坐標(biāo)數(shù)組)

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

Com計(jì)算.Enabled=True:Com繪圖.Enabled=True:Comok1.Enabled=FalseEndSub計(jì)算機(jī)輔助設(shè)計(jì)第三章圖形變換西南交通大學(xué)峨眉校區(qū)機(jī)械工程系環(huán)境初試化子程序: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

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

'初始化

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

Fori=1To3Forj=1To3ch(i,j)=Val(Text2(n).Text)n=n+1Nextj,iCom計(jì)算.Enabled=True:Com繪圖.Enabled=True:Comok2.Enabled=FalseEndSub計(jì)算機(jī)輔助設(shè)計(jì)第三章圖形變換西南交通大學(xué)峨眉校區(qū)機(jī)械工程系變換計(jì)算子程序:PrivateSubCom計(jì)算_Click()Dimtemp(1To3,1To3)AsSingle'定義一個(gè)臨時(shí)暫存數(shù)組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)'將結(jié)果放回p數(shù)組,并顯示

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

'設(shè)置繪圖線條(顏色、寬度、線型)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計(jì)算機(jī)輔助設(shè)計(jì)第三章圖形變換西南交通大學(xué)峨眉校區(qū)機(jī)械工程系PrivateSubText1_Change(IndexAsInteger)'修改坐標(biāo)Com計(jì)算.Enabled=False:Com繪圖.Enabled=False:Comok1.Enabled=TrueEndSub--------------------------------------------------------------------------------------PrivateSubText2_Change(IndexAsInteger)'修改變換矩陣

Com計(jì)算.Enabled=False:Com繪圖.Enabled=False:Comok2.Enabled=TrueEndSub計(jì)算機(jī)輔助設(shè)計(jì)第三章圖形變換西南交通大學(xué)峨眉校區(qū)機(jī)械工程系二、命令組文件

利用命令組文件調(diào)用AutoCAD進(jìn)行參數(shù)化繪圖

參閱教材《計(jì)算機(jī)輔助設(shè)計(jì)》P142

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

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

例如:有EXAMPLE.SCR命令組文件,其內(nèi)容和格式如下:計(jì)算機(jī)輔助設(shè)計(jì)第三章圖形變換西南交通大學(xué)峨眉校區(qū)機(jī)械工程系在AutoCAD中調(diào)用已生成的SCR文件的方法:

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

在彈出的“SelectScriptFile”對(duì)話框中選中需調(diào)用的SCR文件

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

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

'關(guān)閉文件Fori=1Ton'數(shù)據(jù)排序(冒泡法)

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

'關(guān)閉文件EndSub計(jì)算機(jī)輔助設(shè)計(jì)第三章圖形變換西南交通大學(xué)峨眉校區(qū)機(jī)械工程系例2:

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

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

接下頁(yè)計(jì)算機(jī)輔助設(shè)計(jì)第三章圖形變換西南交通大學(xué)峨眉校區(qū)機(jī)械工程系OpenFileName$ForOutputAs#1'輸出SC

溫馨提示

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