计算机辅助设计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

提交评论