三维图形几何变换

别妄想泡我
532次浏览
2020年12月06日 07:15
最佳经验
本文由作者推荐

三十六雨-dnf鬼泣刷图加点

2020年12月6日发(作者:伍余福)


3.1.2 三维图形几何变换
三维几何变换包括平移、旋转和变比。三维几 何变换可以表示为公
式,或三维齐次坐标和4×4变换矩阵的乘积。下面分别以公式,矩阵
乘积 和简记符号来描述三维几何变换。并记变换前物体的坐标为x,y,z;
变换后物体的坐标为x′,y′ ,z′。

一、平移

设Tx,Ty,Tz是物体在三个坐标方向上的移动量,则有公式:
x′=x+T
x

y′=y+T
y

z′=z+T
z

矩阵运算表达为:

[x′ y′ z′ 1]=[x y z 1]

简记为:T(Tx,Ty,Tz)

二、旋转




旋转分为三种基本旋转:绕z轴旋 转,绕x轴旋转,绕y轴旋转。
在下述旋转变换公式中,设旋转的参考点在所绕的轴上,绕轴转θ角,< br>方向是从轴所指处往原点看的逆时针方向(图3.5(a),(b))。






1绕z轴旋转的公式为:

x′=xcosθ-ysinθ

y′=xsinθ+ycosθ

z′=z

矩阵运算的表达为:



[x′ y′ z 1]=[x y z 1]


简记为R
z
(θ)。

2绕x轴旋转的公式为:

x′=x

y′=ycosθ-zsinθ

z′=ysinθ+zcosθ
矩阵运算的表达为:

[x′ y′ z′ 1]=[x y z 1
简记为R
x
(θ)

2绕y轴旋转的公式为:

x′=zsinθ+xcosθ

y′=y

z′=zcosθ-xsinθ





矩阵的运算表达式为:

[x′ y′ z′ 1]=[x y z 1]

简记为Ry(θ)。



如果旋转所 绕的轴不是坐标轴,而是一根任意轴,则变换过程变显
得较复杂。首先,对物体作平移和绕轴旋转变换, 使得所绕之轴与某一
根标准坐标轴重合。然后,绕该标准坐标轴作所需角度的旋转。最后,
通过 逆变换使所绕之轴恢复到原来位置。这个过程须由7个基本变换的
级联才能完成。

设旋转所绕的任意轴为p
1
, p
2
两点所定义的矢量。旋转角度为(图
3.6)。这7个基本变换是:

1T(-x
1
,-y
1
,-z
1
)使p
1
点与原点重合(图3.6(b));

2R
x
(α),使得轴p1p2落入平面xoz内(图3.6(c));

3R
y
(β),使p1p2与z轴重合(图3.6(d));

4R
z
(θ),执行绕p1p2轴的θ角度旋转(图3.6(e));

5R
y
(-β),作3的逆变换;


6R
x
(-α),作2的逆变换;

7T(x
1
,y
1
,z
1
)作1的逆变换。


图3.6 绕任意轴P1P2旋转的前四个步骤



1求R
x
(α)的参数:转角α是u在yoz平面的投影u′=(o,b,c)
与z 轴的夹角(图37(a)),故有:

cos=,其中d=


又因u′×u
z
=u
x
|u′||u
z
|sinα

其中u
x
是在x轴上的投影。并且用行列式计算矢量积得:

u′×u
z
=u
x
·b,故得:


sinα=

,得出R
x
(α)为:


R
x
(α)=





图3.7


2求R
y
(β)的参数(图3.7( b)):经过R
x
(α)变换,p
2
已落入xoz平
面,但p
2
点与x轴的距离保持不变。因此,p
1
p
2
现在的单位矢量u″ 的z
方向分量之值即为u′之长度,等于d,β是u″与u
z
之夹角,故有:

cosβ=

=d

根据矢量积的定义,有:


u
z
|u″||u
z
|sinβ=u
y
·(-a)

因为|u″|=

sinβ=-a



=1,并|u
z
|=1,所以:

因此得到R
y
(β)为:

Ry(β)=


绕任意轴(x
1
y
1
z
1
)(x
2
y
2
z
2
)转动θ角的变换R(θ)为如下级联
变换:

R(θ )=T(-x
1
,-y
1
,-z
1
)·R
x
(a)·R
y
(β)·R
z
(θ)·

R
y
(-β)·R
x
(-a)·T(x
1
,y
1< br>,z
1
)



三、变比

设sx,sy,sz是物体在三个方向的比例变化量,则有公式:

x′=x·sx,

y′=y·sy,

z′=z·sz,


矩阵运算的表达为

[x′ y′ z′ 1]=[x y z]

简记为S(sx,sy,sz)。

相对于某个非原点参数点(xf,yf, zf)进行固定点变比变换,是通过
如下级联变换实现的:

T(-xf,-yf,-zf)·S(sx,sy,sz)·T(xf,yf,zf)



四、三维几何变换的指令

和二维类似,三维几何变换也 有三条指令,分别执行建立变换矩阵,
积累变换和坐标变换的功能。

1建立变换矩阵的指令:


creat-transformation- matrix-3(x
f
,y
f
,z
f
,s
x,s
y
,s
z
,x
r1
,y
r1
,z
r1
,x
r2
,y
r2
,z
r2
,α,t
x
, t
y
, t
z
, matrix);

其中:x
f
,y
f
,z
f
是变比固定坐标;

s
x
,s
y
,s
z
是变比参数;

x
r1
,y
r1
,z
r1
,x
r2
,y< br>r2
,z
r2
是旋转所绕任意轴的起点与终点坐标;


α 是平移参数;

matrix 是返回的4×4的变换矩阵。

2积累变换的指令

accumulate- matrices-3(m
1
,m
2
,m);

其中m1
,m
2
是输入矩阵,m是输出矩阵。三个都是4×4的矩阵。这条指
令 执行如下功能:

m=m
1
·m
2

3坐标变换的指令:

set-segment- transformation-3(Id,matrix);

其中Id是物体的编号,ma trix是变换矩阵。这条指令将Id所含的坐标
逐一与matrix相乘,从而实现三维几何变换。< br>

杭州海底世界团购-lol排位分段


南京大学历年分数线-孕妇食谱大全及做法


老兵你要走吉他谱-贫困生助学金申请书


健康晚餐食谱-外包呼叫中心


benefited-新型玻璃教学设计


跟单员工作流程-王丰军


会计知识大赛-13611


selectedindexchanged-铿锵有力