第4.5节 三维图形的几何变换2

更新时间:2024-06-12 15:52:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

§4.5 三维图形的几何变换

? 三维图形的基本变换矩阵有哪些?

? 三维图形变换的应用(三视图、轴测图、透视图)。

和二维图形一样,用适当的变换矩阵也可以对三维图形进行各种几何变换。对三维空间的点如(x,y,z),可用齐次坐标表示为(x,y,z,1)。因此,三维空间里点的变换可写为:

?A?D?1??H??LBEIMCFJNP??Q?,此方阵R??S??x'y'z'1???xyz亦可分为四部分,其中左上角部分产生比例、对称、错切和旋转变换;左下角部分产生平移变换;右上角部分产生透视变换;右下角部分产生全比例变换。

一、 三维比例变换(基点为原点)

?x'y'z'1???xyz?A?01??0E000??0???AxEyJz1??00J0???0001??

由上式可知:A、E、J分别控制X、Y、Z方向的比例变换。若A=E=J=1,S≠1,则元素S可使整个图形按同一比例放大或缩小。即:

?1000???x'y'z'1???xyz1??0100???0010???xy??000S??

若S>1,则整个图形变换后缩小;若S<1,则整个图形变换后放大。

下图为对一三棱锥分别实行局部比例变换(X方向放大1倍;Y方向缩小1倍;Z方向比例不变)和全比例放大1倍的变换。

zS???x??S

当相对于任意参考点F(x,y,z)作比例变换时,可视为:

fff① 将F平移至原点; ② 作过原点的比例变换; ③ 将F移至原来位置;

SF000??100?010?

?yz1?ff

00?1?010?=?001???x?y?zfff0??0?0??0??S?0??0??0x000??S00?0S0??001?yz?1?0??0??xf?? =????(1?Sx0Sy00Sfzz00S)?xxf0(1?S)?yy(1?S)?zf0??0? 0??1?

二、 三维对称变换 标准的三维空间对称变换是相对于坐标平面进行的。

(1) 对

XOY

平面的对

称变换 其变换矩阵为:

?1?0???0??0010000?100??0?; 0??1??M?XY(2) 对YOZ平面的对称变换 其变换矩阵为:

??1?0???0??0010000100??0?; 0??1??M?YZ(3) 对XOZ平面的对称变换 其变换矩阵为:

?M?XZ?1?0???0??00?10000100??0?; 0??1?三、 三维错切变换

?1BC0??其变换矩阵为:?M???D1F0???HI10?可见,主对角线??0001??各元素均为1,第4行和第4列其他元素均为0。

?1BC0???x'y'z'1???xyz1??D1F0???HI10???x?Dy?Hz??0001??

下图就是对单位立方体施行错切变换。变换矩阵中B=C=H=I=0,D=0.5,F=0.3。

Bx

错切变换是画斜轴测图的基础,按方向不同,可分为

六种基本变换。

?

沿X轴含Y向错切,变换矩阵为:

错切变换为:,即

x'=x+Dy, y'=y, z'=z

?

沿X轴含Z向错切,变换矩阵为:

错切变换为:

?

沿Y轴含X向错切,变换矩阵为:

错切变换为:

?

沿Y轴含Z向错切,变换矩阵为:

错切变换为:

?

沿Z轴含X向错切,变换矩阵为:

错切变换为:

?

沿Z含Y向错切,变换矩阵为:

错切变换为:

四、 三维平移变换

?1?0其变换矩阵为:?M????0??L010M001N0??0?其中,L、M、0??1?N分别为X、Y、Z方向的平移量。

?x'?x?L??y'?y?M?z'?z?N?

五、 三维旋转变换

三维旋转变换应按绕不同轴线旋转分别处理(右手定则坐标系)。同样地,θ旋转角逆时针转动为正,顺

时针转动为负(正对坐标轴的正方向看)。 (1) 绕

Z

相当于二维图形绕原点转动,只要增加z分量,其关系?x'?xcos??ysin??y'?xsin??ycos?式:?

x'y'??z'?z:

?c?s?00??z'1???xyz1???s?c?00???0010? ??0001??

?cos?sin?00??变换矩阵?M?Z???sin?cos?00???0010?; ??0001??2) 绕X轴旋转的变换矩阵可通过置换坐标得

到,其置换顺序为:用y置换x,用z置换y,用x置换z。可得变换矩阵为:

?1000???M???0cos?sin?0?X??0?sin?cos?0?; ??0001??3) 同理,得绕Y轴旋转的变换矩阵

?((?M?Y?cos??0???sin???00100?sin?0cos?00??0?; 0??1?(4) 绕任意轴的旋转变换

变换思路:

① 将直线AB平行移动,使A点坐标通过原点,此时AB变成A’B’,变换矩阵为T(-x,-y

aa,?za)

② 使物体(或A’B’)绕x轴转β角,此时A’B’变成A’B”落在xoz平面内,R(?)。

x③ 使物体绕y轴转一α角,使A’B”变成A’B’”与z轴重合,R(?α)。

y

④ 使物体绕z轴旋转θ角,即物体绕A’B’”

θ)。 轴转θ角,R(z⑤ 使物体作反于步骤③的运动,即R(α)。

y⑥ 使物体作反于步骤②的运动,即R(??)。

x⑦

反平移,原点移至原处,即T(xa,ya,za) 。

所以,旋转变换矩阵为:

R?T(?x,?y,?z)R(?)R(??)R(?)R(?)Rabaaaxz

补充:

对面ax+by+cz+D=0 镜像的变换: 变换的思路:作面的法向量n=(a,b,c) ①将n旋转至与x,y,z某一轴重合(如z轴); ②作xoy面镜面; ④ 反旋转n至原位置。

§4.5三维图形在二维屏幕上的显示(形体的投影变换)

计算机的屏幕是二维的,要在二维屏幕上显示三维图形,并使之带有立体感,这就要将图形的三维坐标按一定规则转换成二维屏幕坐标,即要将形体进行投影变换。投影变换的分类:

??正投影?????正等侧???正平行投影??正轴侧投影?正二侧????正三侧?平行投影(视点无限远)?????投????斜等侧?斜平行投影?影???斜二侧???一点透视???透视投影(视点距离有限)?二点透视??三点透视???

根据投影中心与投影平面之间距离的不同,投影可分为平行投影和透视投影。

透视投影的投影中心到投影面之间的距离是有限的,而平行投影的投影中心到投影面之间的距离是无限的。

一、 三面投影变换(正投影)

b

机械设计中通常都采用国家标准规定的三视图来表达零件的形状。将空间三维实体通过矩阵变换而获得三视图(即主视图、俯视图和左视图)的绘图信息,这种变换称之为三面投影变换(或正投影变换)。

yYZxoxZa) 主视图变换矩阵 取XOY平面上的投影为主视图,只需将立体的全部Z坐标变为零,即有:

?1000???x'y'z'1???xyz1??0100???0000???xy??0001??;

b) 俯视图变换矩阵 取XOZ平面上的投影并展开与XOY平面为同一平面。为使俯视图与主视图间保持一定距离,还应使其下移一个d值。因此,俯视图的变换矩阵实际上是一投影,绕X轴逆时针方向旋转90度,沿Y向平移的复合变换矩阵。

01?

?T?H?1?0???0??0000000100??1??00??0??0??1??00cos90??sin90?00sin90?cos90?00??1??00??0??0??1??0010?d00100001 则:?x'y'z'1???x?(z?d)01?

c) 左视图变换矩阵 取YOZ平面上的投影并展开与XOY平面为同一平面。同样,为了使左视图与主视图间保持一定距离,还应使其右移一个d值。因此,左视图的变换矩阵实际上是一投影、绕Y轴顺时针旋转-90度、沿X向平移的复合变换矩阵。

?0000??cos90?0sin90?0??1??T???0100????0100??W??0?0010???sin90?0cos90?0??0??0001????0001?????d 则:?x'y'z'1????(z?d)y01?

补充:正轴测投影:轴测投影所用的投影平面一般不垂直

于某个坐标轴,因此,一个图形的几个面可以同时显示出来。这种投影与投影中心的距离无关,投影线保持平行,但投影角度可以改变,而且沿着每个坐标轴,其距离是可以度量的。

000100010001 正等测投影:其投影平面的法线和每个坐标轴的夹角相

等。它沿3个坐标轴方向具有相等的变形系数。

将三维图形绕Z轴旋转θ角,再绕y轴旋转φ角,然后向

ZOY平面投影,即可得正轴测投影。其变换矩阵为:

?cos?sin?00??cos?0?sin?0??00?T=??sin?cos?00????0100????01轴测?0010??sin?0cos?0??00??0001????0001????00

当x,y,z三个方向都同样缩短时,称为正等测投影,此时,

?00.7071?0.40820??0.7071?0.40820?θ=45°,φ

=35°36′,T??0??000.81650? ??0001??当y,z方向长度缩短得一样时称为正二测投影,此时,θ

?00.9354?0.11780??T??00.3535?0.31170?=20°42′,φ=19°29′,

??000.94280? ??0001??斜轴测投影变换:三维错切变换是斜轴侧图的基础。将三维形体先沿两个坐标轴方向错切变换,然后在向包含这两个坐标轴的投影面作正投影变换,得到三维形体的斜轴测投影图。如先沿X含Y错切,再沿Z含Y错切,最后向XOZ面投影实现,其变换矩阵如下:

00?00??10?01??

二、 斜平行投影

投影方向不垂直于投影平面的平行投影,称为斜平行投影。

斜轴测投影变换:三维错切变换是斜轴侧图的基础。将三维形体先沿两个坐标轴方向错切变换,然后在向包含这两个坐标轴的投影面作正投影变换,得到三维形体的斜轴测投影图。如先沿X含Y错切,再沿Z含Y错切,最后向XOZ面投影实现,其变换矩阵如下:

如图,设:投影方向矢量为OP(x方向的斜平行投影。

p,yp,zp),由此可定义任意

现将形体投到xoy平面上,设形体上一点(x,y,z),在xoy平面上的投影为(xs,ys)。

p,由投影方向矢量(x参数方程为:

yp,zp)可x,y,z)的投影线

?x?x?x*t??y?y?y*t。 ?z?z?z*t (t为参数)

?spspsp因为(x,y,z)落在z=0的平面上,故有zppps?0。

由此得:t = -z/z参数方程得:

p?x?x?x/z*z ??y?y?y/z*zsppspp令:sxp?x/z,sppyp?y/z. 则可用矩阵表示为:

pp?xsyszs1???xyz?1?0?x1????z??001yz000pp?00pp0??0? ?0?1?? 同理,可推导在yoz,xoz面上的投影。

三、 透视变换

透视图是一种与人的视觉观察物体比较一致的三维图形,它是采用中心投影法绘制。通过投影中心(视点),将空间立体投影到二维平面(投影面)所产生的图形就是透视投影,分块矩阵?PQR?中元素P、Q、

TR称为透视参数,给它们赋予非零值即产生透视变换。通过透视变换,在透视投影中,空间平行直线投影的交点称为直线的灭点。

?1?0?1??0??0yPx?Qy?Rz?101000010P??Q???xR??1?zPx?Qy?Rz?1?x'y'z'1???xyzyz(Px?Q?x???Px?Qy?Rz?1?1??

当P、Q、*--R三个元素中有两个元素为0时,可得到一点透视变换;当有一个元素为0时,可得到二点

透视变换;当均不为0时,可得到三点透视变换,如下图所示。

本文来源:https://www.bwwdw.com/article/6tg6.html

Top