当前位置:文档之家› 计算机图形学_第七章_几何变换

计算机图形学_第七章_几何变换


二维几何变换的齐次坐标表示
如果我们既要对常数项进行变换,也要对x和y项进行变 换,我们进行如何的处理呢? 观察如下的表达式: x
'
a1 ' y b1 c ' c 1
a2 b2 c2
a3 x b3 y c 3 c
上式表明,进行连续两次平移,实际上是把平移距离相 加,即 T (T , T ) T (T , T ) T (T T , T T ) P ' T (T T , T T ) P
x2 y2 x1 y1 x1 x2 y1 y2
x1
x2
y1
y2
组合比例变换
作用于点P的两次连续的比例变换的变换矩阵为:
x
Ty ) P
这样,我们就把矩阵的加法运算转化为矩阵的乘法运算 ,我们使用的这种表达坐标的方法就叫齐次坐标表示。
(x,y)表达为(hx,hy,h),当h=1时称为规格化齐次坐标。
二维几何变换的齐次坐标表示
使用规格化齐次坐标,我们可以表示另外两种变换: 比例变换的矩阵形式 : x ' 缩写为 :P ' S (S x,S y ) P 旋转变换的矩阵形式 : x ' 缩写为 : P ' R( ) P
则相对于坐标原点的旋转变换公式如下:
x ' x cos y sin y ' y cos x sin
旋转变换
如果令 则有 记为
cos R sin sin cos
x ' x cos y sin y ' y cos x sin
7.1 二维基本变换
二维基本变换包括:
•平移 •比例 •旋转
7.1.1 平移变换
平移是一物体从一个位置到另一位置所作的直线移动。 如果要把一个位于的点移到新位置时,只要在原坐标上 加上平移距离Tx及Ty即可
平移变换
表示成数学形式: 表示成向量形式:
x x Tx y y Ty
用来改变一物体大小的变换称为比例变换(缩放变换) 。如果要对一个多边形进行比例变换,那么可把各顶点 的坐标(x,y)均乘以比例因子Sx、Sy,以产生变换后 的坐标(x’,y’)
比例变换
表示成数学形式: 如果令
x S x x y Sy y
Sx S 0
0 Sy
关于y轴对称变换
关于y轴的对称变换,是一种特殊形式的缩放变换,其中 ,Sx=-1,Sy=1,如图所示,其变换矩阵为:
1 0 0 RFy 0 1 0 0 0 1
关于坐标原点的对称变换
关于y轴对称变换,是一种特殊形式的缩放变换,其中, Sx=-1,Sy= -1,如图所示,其变换矩阵为:
glMultMatrix(TT(-XA,-YA));
glBegin(GL_POINTS);
glVertex3f(x,y,x);
从而沿x方向关于y轴的错切
的变换矩阵为:
1 shx SH y ( shx ) 0 1 0 0 0 0 1
x ' x y shx y' y
沿y方向关于x轴的错切
在下图中,对矩形ABCD沿y轴方向进行错切变换,得到 矩形 AB’C’D 。错切的角度为 θ ,令 shy=tanθ ,假定点 (x, y)经错切变换后变为(x’, y’),由下图可知:
cos y ' sin 1 0 -sin cos 0 0 x 0 y 1 1
Sx y ' 0 1 0
0 Sy 0
0 x 0 y 1 1
x ' a b y ' d e 1 0 0 c x f y 1 1
即:
x ' ax by c y ' dx ey f
这样的变换在数学上称为仿射变换(Affine Transformation)。前 面介绍的几种变换都是仿射变换的特例。
0 0 S x 2 0 0 S x1 0 0 S x1 S x 2 0 S 0 0 S y1 0 0 S y1 S y 2 0 y2 0 0 1 0 0 1 0 0 1
即:
S (Sx 2 , S y 2 ) S (Sx1, S y1 ) S (Sx1 Sx 2 , S y1 S y 2 )
1 0 0 RFO 0 1 0 0 0 1
错切变换
这种变换可使物体产生变形,即物体产生扭转或称为错 切。常用的两种错切变换是沿x向或沿y向错切变换。
•沿x方向关于y轴的错切 •沿y方向关于x轴的错切
沿x方向关于y轴的错切
在下图中,对矩形ABCD沿x轴方向进行错切变换,得到 矩形 A’B’CD 。错切的角度为 θ ,令 shx=tanθ 假定点 (x, y) 经错切变换后变为(x’, y’),由下图可知:
则比例变换可以表示成以下的矩阵形式:
x ' Sx y ' 0 0 x Sy y
记为:
P' S P
7.1.3 旋转变换
物体上的各点绕一固定点沿圆周路径作转动称为旋转变 换。我们可用旋转角表示旋转量的大小。 一个点由位置(x、y)旋转到(x′y′)如下图所示,θ为 旋转角 。
旋转变换
由图可得到如下三角关系式:
x ' rc os( ) r cos cos r sin sin x cos y sin
y ' r sin( ) r cos sin r sin cos x sin y cos
x P y
x ' P' y '
Tx T T y
可以用矩阵相加来表示P点的位移
Tx x ' x y ' Ty y
计为: P ' P T
7.1.2 比例变换
OPENGL程序中的变换顺序
glMatrixMode(GL_MODELVIEW); /指定当前操作矩阵类型 glLoadIdentity(); /设置当前操作矩阵为单位矩阵 glMultMatrix(TT(XA,YA)); /用当前矩阵乘以函数所提供矩阵 glMultMatrix(TS(Sx,Sy));
Lecture 7
几何变换
概述
在计算机图形学中,通常需要将画出的图形平移到某一 位置,或改变图形的大小和形状,或利用已有图形生成 复杂图形,这种图形处理的过程就是图形的几何变换, 简称图形变换。
二维图形和三维图形都可以进行图形变换。图形变换通 常采用矩阵的方法,图形所做的变换不同其变换矩阵也 不同。变换的实质是对由图形上各点的坐标组成的矩阵 进行运算,因此在讨论各种具体图形几何变换时,可以 归结为一个点的变换。
连续进行两次比例变换,实际上是把相应的比例因子相 乘。
组合旋转变换
连续两次旋转的组合变换矩阵可用下式表示
R ( 2 ) R (1 ) R (1 2 )
与组合平移的情况相似,连续旋转实际上是把旋转角相 加。
7.3.2 多个基本变换的组合变换
相对于任一固定点的比例变换
首先把图形及固定点一起平移,使固定点移到坐标原点上;然后把图形 相对于原点进行比例变换;最后把图形及固定点一起平移,使固定点又 回到原来位置。
7.3 组合变换
任意一个变换序列均可表示为一个组合变换矩阵。组合 变换矩阵可由基本变换矩阵的乘积求得。由若干基本变 换矩阵相乘求得组合变换矩阵的方法称为矩阵的级联。
•单个基本变换的组合变换
•多个基本变换的组合变换
7.3.1 单个基本变换的组合变换
组合平移变换 对一物体连续平移两次,假定两次平移的距离为(Tx1, Ty1)及(Tx2,Ty2),则
二维几何变换的齐次坐标表示
使用这种表示方法,坐标的平移变换可以表示为:
x ' 1 0 Tx x y ' 0 1 T y y 1 0 0 1 1
平移变换的矩阵形式缩写: P ' T (T ,
P ' T (T x 2 , T y 2 ) {T (T x1 , T y 1 ) P } {T (T x 2 , T y 2 ) T (T x1 , T y 1 )} P
由此可计算出组合矩阵为: 1
0 Tx 2 1 0 Tx1 1 0 Tx1 Tx 2 0 1 T 0 1 T 0 1 T T y2 y1 y1 y2 0 0 1 0 0 1 0 0 1
x ' x y ' y x shy
从而沿y方向关于x轴的错切
的变换矩阵为:
1 SH x ( shy ) shy 0 0 0 1 0 0 1
7.2.4 二维几何变换的一般形式
设图形上一点的坐标为 P(x,y) ,经过二维几何变换后的坐标为 P’(x’, y’),变换矩阵一般可写为:
7.2.3 其他变换
反射变换 :反射是用来产生物体的镜象的一种变换。物 体的镜象一般是相对于一对称轴生成的 。
•关于x轴对称变换 •关于y轴对称变换 •关于坐标原点的对称变换
关于x轴对称变换
关于x轴的对称变换,是一种特殊形式的缩放变换,其中 ,Sx=1,Sy= -1,如图所示,其变换矩阵为:
1 0 0 RFx 0 1 0 0 0 1
相关主题