Transcript 3.1 图形的几何变换
基本的几何变换研究物体坐标在直角坐标系内的平移、
旋转和变比的规律。
主要介绍
二维图形几何变换
三维图形几何变换
参数图形几何变换
3.1.1 二维图形几何变换
一、基本变换
⒈ 平移(Translation)
将图形对象从一个位置(x, y)移
到另一个位置(x′,y′)的变换。
(x’, y’)
x
x = x + Tx
y = y + Ty
(Tx,Ty)
(x, y)
3.1.1 二维图形几何变换 (续)
一、基本变换
⒉ 旋转(Rotation)
点(x, y)围绕原点逆时针转
动一个角度,
x = x cos y sin
y = y cos + x sin
y
(x’, y’)
(x, y)
f
x
3.1.1 二维图形几何变换 (续)
一、基本变换
⒉ 旋转(Rotation)
将以某个参考点(xr, yr)为圆心,
将对象上的各点(x, y)围绕圆心转
动一个逆时针角度 .
x = x cos y sin
y = y cos + x sin
y
(x’, y’)
(x, y)
(xr, yr)
f
x
newx = xxr
newy = yyr
newx = newx cos newy sin
newy = newy cos + newx sin
x = newx +
y = newy +
xr
yr
x = xr+(xxr)cos (yyr)sin
y = yr+(yyr)cos +(xxr)sin
3.1.1 二维图形几何变换 (续)
一、基本变换
⒊ 变比(Scaling)
y
(x’, y’)
使对象按比例因子(Sx, Sy)放大或缩
小的变换
x = x · Sx
y = y · Sy
(3.1)
(x, y)
固定点变比(scaling relative to a fixed point)。以a为固定点
1((1)作平移Tx=xa,Ty=ya;
2((2)按式(3.1)作变比;
3((3)作1)的逆变换,即作平移Tx=xa,Ty=ya。
x
3.1.1 二维图形几何变换 (续)
一、基本变换
⒊ 变比(Scaling)
当比例因子Sx或Sy小于0时,对象不仅变化大小,而且分别按x轴或
y轴被反射
3.1.1 二维图形几何变换 (续)
二、变换矩阵
⒉ 平的矩阵运算表示为
1
x
y
1
x
y
1
0
Tx
0
1
Ty
0
0
1
(3.2)
简记为p=p·T(Tx, Ty)。其中,p=[x y 1],p=[x y 1]。
1 0 0
T (Tx , Ty ) 0 1 0
Tx Ty 1
表示平移矩阵。
3.1.1 二维图形几何变换 (续)
二、变换矩阵
⒉ 旋转的矩阵运算表示为
cos sin 0
x y 1 x y 1 sin cos 0
0
0
1
简记为p=pR(),其中R()表示旋转矩阵。
(3.2)
3.1.1 二维图形几何变换 (续)
二、变换矩阵
⒊ 变比的矩阵运算表示为
Sx 0 0
x y 1 x y 1 0 S y 0
0 0 1
简记为p=pS(Sx, Sy),其中(Sx, Sy)表示变化矩阵。
(3.3)
3.1.1 二维图形几何变换 (续)
三、级联变换(Composite Transformation)
对于复杂的图形变换,需要通过若干个变换矩阵的级联才能实
现。这里特别要注意的是矩阵级联的顺序,由于矩阵的乘法运算不
适用交换率,因此矩阵级联的顺序不同所得到的变换结果也不相同。
例如:对任意直线的对称变换(直线方程为 Ax + By + C = 0)
y
o
x
3.1.1 二维图形几何变换 (续)
三、级联变换(Composite Transformation)
y
y
x
x
o
T1 =
1 0 0
0
1 0
C/A 0 1
x
o
T 2=
cosα -sinα 0
sinα cosα 0
0
0
1
3.1.1 二维图形几何变换 (续)
三、级联变换(Composite Transformation)
x
o
T3 =
y
y
y
1 0 0
0 -1 0
0 0 1
T4 =
o
cosα
-sinα
0
x
sinα 0
cosα 0
0
1
x
o
T5=
1 0 0
0 1 0
-C/A 0 1
3.1.1 二维图形几何变换 (续)
三、级联变换(Composite Transformation)
组合变换矩阵为:
cos2α
T =T1×T2×T3×T4×T5=
sin2α
(cos2α-1)C/A
[x y 1]= [x
y 1]T
sin2α
-cos2α
sin2α*C/A
0
0
1
3.1.1 二维图形几何变换 (续)
四、二维几何变换的指令
⒈ 建立变换矩阵的指令为
creat_transformation_matrix(xf, yf, Sx, Sy, xr, yr, , Tx,
Ty, matrix);
⒉ 积累变换的指令为
accumulate_transformation_matrix(matrix1, matrix2, matrix);
⒊ 坐标变换的指令为
set_segment_transformation(Id, matrix);
3.1.2 三维图形几何变换
⒈ 旋转
(x’, y’, z’)
1) 绕z轴旋转的公式为
x = xcos ysin
y = xsin +ycos
z = z
(x, y, z)
x
矩阵运算的表达式为
cos
sin
x y z 1 x y z 1
0
0
sin
cos
0
0
0 0
0 0
1 0
0 1
z
3.1.2 三维图形几何变换 (续)
⒈ 旋转
y
(x’, y’, z’)
2) 绕x轴旋转的公式为
x = x
y = ycos zsin
z = ysin +zcos
(x, y, z)
矩阵运算的表达式为
x
0
0
0
1
0 cos sin 0
x y z 1 x y z 1
0 sin cos 0
0
0
0
1
z
3.1.2 三维图形几何变换 (续)
⒈ 旋转
3) 绕y轴旋转的公式为
x = zsin +xcos
y = y
z = zcos xsin
y
(x’, y’, z’)
(x, y, z)
x
矩阵运算的表达式为
cos 0 sin 0
0
1
0
0
x y z 1 x y z 1
sin 0 cos 0
0
0 1
0
z
3.1.2 三维图形几何变换 (续)
⒈ 旋转
4) 绕任意轴旋转
图3.6 绕任意轴P1P2旋转的前4个步骤
3.1.2 三维图形几何变换 (续)
⒉ 变比
设Sx、Sy、Sz是物体在3个坐标轴方向的比例变化量,则有公式
x = xSx,y = ySy,z = zSz
矩阵运算的表达式为
x y z 1 x y z 1
0 0
0 S y 0 0
0 0 Sz 0
0 0 0 1
Sx 0
3.1.3 参数图形几何变换 (续)
⒈ 圆锥曲线的几何变换
圆锥曲线的二次方程是Ax2+Bxy+Cy2+Dx+Ey+F=0,其相应的矩阵表达式是
简记为XSXT=0。
A
B
x y 1 2
D
2
B
2
D
2
E
2
x
y 0
C
1
E
F
2
⑴ 平移变换。若对圆锥曲线进行平移变换,平移矩阵是
1 0 0
Tr= 0 1 0,
m n 1
则平移后的圆锥曲线矩阵方程是XTrSTrTXT=0。
3.1.3 参数图形几何变换 (续)
⒈ 圆锥曲线的几何变换
⑵ 旋转变换。若对圆锥曲线相对坐标原点作旋转变换,旋转变换
cos sin 0
矩阵是
sin cos 0
R=
,
0
0
1
则旋转后的圆锥曲线矩阵方程是XRSRTXT=0。
若对圆锥曲线相对(m, n)点作旋转角变换,则旋转后的圆锥曲线
是上述Tr、R变换的复合变换,变换后圆锥曲线的矩阵方程是
XTrRSRTTrTXT=0。
⑶ 比例变换。若对圆锥曲线相对(m, n)点进行比例变换,比例变
Sx 0 0
换矩阵为
0 S 0
ST=
y
,
0
0
1
则变换后圆锥曲线的矩阵方程是XTrSTSSTTTrTXT=0。
3.1.3 参数图形几何变换 (续)
⒉ 参数曲线、曲面的几何变换
若指定一个平移矢量t,对曲线平移t,即对曲线上的每一点P都
平移t。对平移后的点P*有
P* = P+t
对于参数曲线和曲面的几何系数矩阵B和代数系数矩阵A,可以直
接实现平移变换,即有
B* = B+T,T = [t t 0 0]T
B*是经平移后参数曲线的几何系数矩阵,变换结果如图所示。
3.2.1 坐标系统
1. 世界坐标系(World Coordinates)
z
为了描述被处理的对象,要在对象所在
的空间中定义一个坐标系,这个坐标系的长
度单位和坐标轴的方向要适合对被处理对象
o
的描述,这个坐标系通常就称之为世界坐标
系或用户坐标系。世界坐标系一般采用右手
三维笛卡儿坐标系。
x
y
3.2.1 坐标系统(续)
y
2. 观察坐标系(View Coordinates)
产生三维物体的视图,必须规定观
z
察点(视点)和观察方向。
好比照相时选择拍摄的位置和方向。
左手笛卡儿坐标系(上图):观察坐标
系的原点通常设置在观察点(视点),Z轴作
x
o
视点
y
为观察方向。
右手笛卡儿坐标系:视点确定在Z轴
上的某一个位置,Z轴仍为观察方向(下图)。
x
o
视点
z
3.2.1 坐标系统(续)
3. 设备坐标系(Device Coordinates)
与图形设备相关连的坐标系叫设备坐标系。
例如,显示器以分辨率确定坐标单位,原点在左下角或左上角;
绘图机绘图平面以绘图精度确定坐标单位,原点一般在左下角。
4. 规格化设备坐标系(Normal Device Coordinates)
为了使图形处理过程做到与设备无关,通常采用一种虚拟设备
的方法来处理,也就是图形处理的结果是按照一种虚拟设备的坐
标规定耒输出的。这种设备坐标规定为0≤X≤1,0≤Y≤1,这种
坐标系称之为规格化设备坐标系。
3.2.2 规格化变换与设备坐标变换
⒈ 规格化变换
从窗口到视区的变换,称为规格化变换(Normalization Transformation)。
y
y
W(窗口)
vyT
wyT
(wx,wy)
(vx,vy)
vyB
wyB
o
V(视图区)
wxL
wxR
x
o
vxL
vxR
x
3.2.2 规格化变换与设备坐标变换 (续)
⒈ 规格化变换
由两图的比例关系:
可得:
vx – vxL
wx – wxL
vxR – vxL = wxR – wxL
vy – vyB
wy – wyB
=
vyT– vyB
wyT – wyB
vx – vxL
vx = R
• ( wx – wxL ) + vxL
wxR – wxL
vyT – vyB
vy = wy – wy • ( wy – wyB ) + vyB
T
B
3.2.2 规格化变换与设备坐标变换 (续)
⒉ 窗口操作
⑴ 视野的变化(zooming)。
⑵ 摇镜头(panning)。
⑶ 多重窗口(multiple window)。
3.2.2 规格化变换与设备坐标变换 (续)
⒊ 从规格化坐标(NDC)到设备坐标(DC)的变换
⑴ 通常采用的公式
xDC=Sx·xNDC+dx,yDC=Sy·yNDC+dy
⑵ 方向的考虑
⑶ 对设备坐标中像素中心的变换
3.2.3 投影变换
投影(project)是一种使三维对象映射为二维对象的变换。它可描述为
project(object(x, y, z))→object(x, y, z)
投影的要素除投影对象、投影面外,还有投影线。
按照投影线角度的不同,有两种基本投影方法:
⑴ 平行投影(parallel projection)。
它使用一组平行投影将三维对象投影到投影平面上去。
⑵ 透视投影(perspective projection)。它使用一组由投影中心
产生的放射投影线,将三维对象投影到投影平面上去。
3.2.3 投影变换 (续)
1 平行投影-正交平行投影(orthographic P. P.)
正投影的投影面与某一坐标轴垂直,而投影方向与该坐标轴的
方向一致。
正投影的图形,在长宽高三个方向上的比例与实物保持一
致,因此,常用于工程制图。
z
主视图
y
x
俯视图
侧视图
3.2.3 投影变换 (续)
2 平行投影-斜交平行投影(oblique P. P.)
投影线与投影平面成交角
正投影与斜投影
3.2.3 投影变换 (续)
3 透视投影变换
投影中心与投影平面之间的距离为有限
参数:投影方向
例子:室内白炽灯的投影,视觉系统
灭点:不平行于投影平面的平行线,经过透视投影之后收
敛于一点,称为灭点.
主灭点:平行于坐标轴的平行线的灭点。
一点透视
两点透视
三点透视
特点:产生近大远小的视觉效果,由它产生的图形深度感
强,看起来更加真实。
3.2.3 投影变换 (续)
3 透视投影变换
3.2.3 投影变换 (续)
3 透视投影变换
设投影中心在坐标原点,投影面与 Z 轴垂直,在 z = d 的
位置。点 P( x, y, z )在投影面上的投影为 P' ( xp, yp, d )。
y
xp
x
yp y
∵ d = z , d =z
xp =
∴
yp =
P' o
P(x,y,z)
x
·d
z
y
·d
z
x
d
z
y
P
P'
z
o
d
z
P
P'
o
3.3.1 二维图元输出
用户定义的二维图元的窗口区到视图区的输出过程如下所示:
应用程序得到的坐标(UC)对窗口区进行裁剪(WC)
窗口区到视图区的规格化变换(NDC)
视图区的规格化坐标系到设备坐标系的变换(DC)
调用基本图元生成算法在图形设备上输出图形
3.3.2 输出属性及其控制
⒈ 图元的输出属性
⒉ 属性的组合控制
3.3.3 三维图元的输出
⒈
⑴
⑵
⑶
定义一个视域坐标系统VCS,为此需指定如下数据:
VCS坐标原点,也称View reference point。
VCS的z轴方向,也称view plane normal。
VCS的y轴方向,又称view up vector。
WCS
z
y
y
z
x
x
VCS
o
⒉ 将投影物体从世界坐标变换为视域坐标。
⒊ 选择平行投影或透视投影进行投影变换。
使得VCS的三维对象变为VCS中在 yOx 平面中的
二维对象。
⒋ 在VCS的 yOx 平面中取一个窗口,并定义相
应的视区,进行标准化变换。