第4章 二维图形变换
4.1二维图形变换-9

可改变和管 理各种图形 的显示
2009
2
OpenGL中对模型的几何变换也称为模型变换。 OpenGL中共提供了三类关于模型变换的函数, 即平移变换、旋转变换与比例变换。
它们的参数都包括了对象的x、y和z三个坐标, 可应用于三维物体。对于二维图形,我们将z 坐标设为0,即假设变换是在z=0的平面内进 行的。
T=
glScale(1,-1,0) glScale(-1,-1,0)
x 0 0 0 y 0 0 0 1
上述两函数产生的变换矩阵为?
2009
13
4.1.4 对称变换
对称变换也称为反射变换,相对于反射轴的对称变换是通过将物 体绕反射轴旋转180°而生成的。它的基本变换包括对坐标轴、原 点和45°线的变换。 关于x轴的对称变换,是保持x值不变,“翻 动”y坐标位置而得到的。这时的变换矩阵: 1 0 0 0 -1 0 0 0 1
y 规格化设备 坐标系
yv 设备坐标系
ow
xw
o 坐标系间的转换
x
ov
xv
2009
30
4.1.6 二维观察变换(续)
2. 二维观察流程
在世界坐标系中要显示的区域称为窗口;窗口映射到显示设备上 的坐标区域称为视区。标准窗口与视区一般都采用矩形,其各边 分别与坐标平行。 窗口与视区的区别?(…)
yw 窗口 yv 视区
2009
25
复合变换举例
例2:平面图形相对于任意点P(xp,yp)作比例变换可通过以下几个步 骤来完成:
1) 将p点平移到坐标原 点,变换矩阵为:
T1 =
1 0 0 0 1 0 -xp -yp 1
计算机图形学二维变换.

窗口到视区(viewport)的转换 —实例推导
(VXR,VYT) (WXR,WYT) (Xv,Yv)
(Xw,Yw)
(WXL,WYB)
(VXL,VYB)
窗口区定义为(WXL,WXR,WYB,WYT),
视区定义为( VXL,VXR,VYB,VYT )
根据相似性原理,得出计算公式:
xw WXL xV VXL WXR WXL VXR VXL Yw WYB yV VYB WYT WYB VYT VYB
4.设备坐标系
(左手法则)
显示器以分辨率确定坐标单位, 原点在左下角或左上角。
如屏幕坐标系: 在显示器上指定窗口和视区,必须进行由NDC到物理设备坐标变 换。
5.规格化设备坐标系(NDC)
• 为了使图形处理过程做到与设备无关,通常采用一种虚拟设备 的方法来处理,其结果是按照一种虚拟设备的坐标规定来输出 的。这种设备坐标规定为0≤X≤1,0≤Y≤1,这种坐标系称之 为规格化设备坐标系。 • 在世界坐标系(WC)与设备坐标系(DC)之间定义的一个与设 备无关的规格化设备坐标系(按左手法则)。取值范围: (0.0,0.0,0.0)~(1.0,1.0,1.0)
计算机图形学基础
第4章 二维变换
本章主要内容
• 窗口与视区
– 坐标系、窗口与视区
• 图形变换的数学基础 • 二维几何变换
– 基本变换、复合(组合)变换
• 二维图形的生成程序实现
目前为止,掌握的基本技能
• 基本绘图函数的使用:
– pDC->SetPixel – Cpen类(线型与线宽的设置)等
• • • • •
4.2 图形变换的数学基础
• 矢量运算 • 行列式 • 矩阵
「二维图形变换」教案:针对平面几何,介绍视觉图形的平移、旋转、翻转等变换方式及其位置作用

二维图形变换是平面几何中不可避免的一个环节。
它是指将一个平面上的图形,按照一定的规则进行平移、旋转、翻转等操作,从而新生成一个以原图形为基础的图形,这一系列操作就叫做二维图形变换。
在图形学、计算机视觉、计算机图形学、技术、动画等领域都有广泛的应用。
本文将介绍视觉图形的平移、旋转、翻转等变换方式及其位置作用。
一、平移变换平移变换是指将图形沿着某个方向移动一定的距离。
在平移变换中,原始图形的形状和大小保持不变,只是位置发生变化。
[pic1.png]上图中的矩形为原始图形,向右移动5个单位长度后得到的新图形为平移后的图形。
可以看出,平移后的图形与原始图形形状相同,只是位置发生了变化。
二、旋转变换旋转变换是指将图形绕着某个点旋转一定的角度。
在旋转变换中,原始图形的大小和形状保持不变,只是位置和方向发生了变化。
[pic2.png]上图中的矩形为原始图形,绕点A逆时针旋转45°后得到的新图形为旋转后的图形。
可以看出,旋转后的图形与原始图形大小和形状相同,只是方向偏转了45°。
三、翻转变换翻转变换是指将图形绕着某个轴对称翻转。
在翻转变换中,原始图形的大小和形状保持不变,只是位置和方向发生了变化。
[pic3.png]上图中的矩形为原始图形,绕着红色虚线所示的轴对称翻转后得到的新图形为翻转后的图形。
可以看出,翻转后的图形与原始图形大小和形状相同,只是方向发生了变化。
四、位置作用在二维图形变换中,原始图形和变换后的图形在位置上是有一定关系的。
例如,在平移变换中,原始图形向右平移5个单位长度,所得到的新图形的位置就比原始图形向右偏移了5个单位长度。
但是,若考虑到坐标系的影响,则需对图形的顶点进行坐标变换。
以平移变换为例,设原图形的四个点坐标为(x1, y1)、(x2, y2)、(x3, y3)、(x4, y4),平移距离为(dx, dy),则其变换后的新点坐标为(x1+dx, y1+dy)、(x2+dx, y2+dy)、(x3+dx, y3+dy)、(x4+dx, y4+dy)。
计算机图形学课件二维图形变换分解

单位矢量 矢量的夹角
cos
矢量的叉积
U V U V
i U V ux vx
j uy vy
k uz vz
变换的数学基础
矩阵
m n
阶矩阵
n阶方阵
零矩阵 行向量与列向量
单位矩阵
矩阵的加法 矩阵的数乘
有n+1个分量的向量 哑元或标量因子
( x1 , x2 ,..., xn , )
( x1 / , x2 / ,..., xn / )
齐次坐标表示不是唯一的
1 规格化的齐次坐标
5.基本几何变换的齐次坐标表示
平移变换
x
y 1 x
1 y 1 0 Tx
矩阵的乘法
矩阵的转置 矩阵的逆
变换的数学基础
矩阵的含义 矩阵:由m×n个数按一定位置排列的一个 整体,简称m×n矩阵。
A=
a11 a12 ... a1n a 21 a 22 ... a 2 n ... ... ... a m 1 a m 2 ... a mn
(1)沿 x 轴方向关于 y 轴错切
将图形上关于y轴的平行线沿x方向推成θ角的 倾斜线,而保持y坐标不变。
y
几何关系
x' x x y' y 令 a ctg 有 x yctg ay
x ' x ay y' y
△x
x
矩阵形式
x
y 1 x
a b T1 c d
的非对角线元素大多为零,如果c和b不为零,则意味着 对图形进行错切变换。 令b=0可以得到沿x方向的错切变换,c>0是沿x正向的错 切变换,c<0是沿x负向的错切变换. 令c=0可以得到沿 y方向的错切变换,b>0是沿y正向的错切变换,b<0是 沿y负向的错切变换.
二维图形的几何变换

二维图形的几何变换正如我们在附录中提到的那样,用齐次坐标表示点的变换将非常方便,因此在本节中所有的几何变换都将采用齐次坐标进行运算。
二维齐次坐标变换的矩阵的形式是:这个矩阵每一个元素都是有特殊含义的。
形进行平移变换;[g h]是对图形作投影变换;[i]则是对图形整体进行缩放变换。
1)平移变换2)缩放变换3)旋转变换4)对称变换对称变换其实只是a、b、d、e取0、1等特殊值产生的一些特殊效果。
例如:当b=d=0,a=-1,e=1时有x´=-x,y´=y,产生与y轴对称的图形。
当b=d=0,a=-1,e=-1时有x´=x,y´=-y,产生与x轴对称的图形。
当b=d=0,a=e=-1时有x´=-x,y´=-y,产生与原点对称的图形。
当b=d=1,a=e=0时有x´=y,y´=x,产生与直线y=x对称的图形。
当b=d=-1,a=e=0时有x´=-y,y´=-x,产生与直线y=-x对称的图形。
5)错切变换当d=0时,x´=x+by,y´=y,此时,图形的y坐标不变,x坐标随初值(x,y)及变换系数b作线性变化。
当b=0时,x´=x,y´=dx+y,此时,图形的x坐标不变,y坐标随初值(x,y)及变换系数d作线性变化。
6)复合变换如果图形要做一次以上的几何变换,那么可以将各个变换矩阵综合起来进行一步到位的变换。
复合变换有如下的性质:复合平移对同一图形做两次平移相当于将两次的平移两加起来:复合缩放两次连续的缩放相当于将缩放操作相乘:复合旋转两次连续的旋转相当于将两次的旋转角度相加:缩放、旋转变换都与参考点有关,上面进行的各种变换都是以原点为参考点的。
如果相对某个一般的参考点(xf,yf)作缩放、旋转变换,相当于将该点移到坐标原点处,然后进行缩放、旋转变换,最后将(xf,yf)点移回原来的位置。
二维三维图形的变换原理和算法

图形变换的基本原理
采用了齐次坐标表示法以后,我们可以把二维 的线性变换表示成如下规格化的形式:
a1 a2 0 [x* y* 1]=[x y 1] b1 b2 0
其中: a1 a2 0
图形变换的基本原理
从图形上来看,两种表示方法是没有实质性差别 的。但却为后面矩阵运算的实现提供了可行性和 方便。
Z Z=1
Y X
图形变换的基本原理
这种用三维的向量来表示一个二维向量, 进一步推广来说,用一个 n+1维的向量来 表示 n 维向量的方法,叫做齐次坐标表示 法。(注意,增加的一维是常数 1)
比例变换
比例变换
– 下面讨论缩放因子a1,b2 对图形变换的影响:
• a1 = b2 = 1, 为恒等变换,即变换后点的坐标不变。 • a1 = b2 ≠1,则为等比例变换。
–a1 = b2 >1,图形沿 x 和 y 两个方向等比例放大。 –0 < a1 = b2 <1,图形沿 x 和 y 两个方向等比例例缩小。
0 01
错切变换
错切变换
Y
Y
– 沿 x 向错切变换结果:
x* = x + b1y
y* = y
X
– 从以上结果(a可) 以原看图 到:
X
(b) 沿x方向错切
• 新有图值形的各基顶础点上的增加y 坐了标一图没个6有增-7变量,△错而x,切x这变坐个换标增是量在是原坐
标值 y 的正比例函数(△x = b1y)。所以使得整 个图形在等高的前提下,沿 x 向发生了倾斜,倾 斜角度 ( tan = b1y/y =b1)。
新-第4章-二维图形生成和变换技术

计算机图形学
二、直线
一条直线是指所有在它上面的点的集合,在图形学 中研究的对象是直线段。 已知线段的起点坐标(Xs, Ys)。终点坐标(Xe, Ye)这 两点就确定了这条线段,并用线段上的任意一点(x, y)均 满足:
x xe x xs y ye y ys
黄石理工学院计算机学院
二、 数值微分法(DDA法)
1.定义 数值微分法即DDA法(Digital Differential Analyzer), 这是一种基于直线的微分方程来生成直线的方法。 2.数值微分法的原理 设(x1,y1)和(x2,y2)分别为所求直线的端点坐标 ,由直线的微分方程得
dy dx
=直线的斜率
即
Dy y y 2 1 Dx x x 2 1
(3)逐点比较法生成直线C语言源程序。 偏差判 直线终 总步数控制步数 象限 别公式 端的坐标 void cb_line(int x1, int y1,int x2,int y2) { int dx, dy, n, k, i, f; int x, y; n=abs(x2-x1)+abs(y2-y1); if (x2≥xl) {k = y2 > = y1? 1:4;x=xl ; y= y1;} 根据端点 else {k = y2 >=y1? 2:3;x=x1;y=y1;} 坐标值判 putpixel(x,y,1); 断所在象 dx=abs(x2-x1); dy=abs(y2-y1); 限,并且
计算机图形学
Computer Graphics
王汝传 wangrc@ 黄海平 hhp@
林巧民 qmlin@
无线传感器网络研究中心
黄石理工学院计算机学院 教材:《计算机图形学》王汝传等 编著 人民邮电出版社
二维图形的几何变换

二维图形的几何变换1、基本几何变换及变换矩阵基本几何变换都是相对于坐标原点和坐标轴进行的几何变换,有平移、比例、旋转、反射和错切等。
1.1 平移变换是指将p点沿直线路径从一个坐标位置移到另一个坐标位置的重定位过程。
他是一种不产生变形而移动物体的刚体变换(rigid-body transformation),如下图所示。
图1-1 平移变换推导:求得平移变换矩阵如下:其中Tx,Ty称为平移矢量。
1.2 缩放变换缩放变换是指对p点相对于坐标原点沿x方向放缩Sx倍,沿y方向放缩Sy倍。
其中Sx和Sy称为缩放系数。
图1-2缩放变换(Sx=2,Sy=3)推导:矩阵:缩放变换可改变物体的大小,如下图所示。
当Sx=Sy >1时,图形沿两个坐标轴方向等比例放大;当Sx=Sy<1,图形沿两个坐标轴方向等比例缩小;当Sx≠Sy,图形沿两个坐标轴方向作非均匀的比例变换。
图1-3比例变换(a)Sx与Sy相等 (b)Sx与Sy 不相等1.3 旋转变换二维旋转是指将p点绕坐标原点转动某个角度(逆时针为正,顺时针为负)得到新的点p’的重定位过程。
图1-4旋转变换推导:利用极坐标方程逆时针旋转θ角的矩阵如下:1.4 对称变换对称变换后的图形是原图形关于某一轴线或原点的镜像。
图1-5对称变换(1)关于x轴对称图1-6关于x轴对称(2)关于y轴对称图1-7关于y轴对称(3)关于原点对称图1-8关于原点对称(4)关于y=x轴对称图1-9关于y=x轴对称(5)关于y=-x轴对称图1-10关于y=-x轴对称1.5 错切变换错切变换也称为剪切、错位变换,用于产生弹性物体的变形处理。
图1-11错切变换错切变换的变换矩阵为:(1)沿x方向错切:b=0(2)沿y方向错切:c=0(3)两个方向错切:b和c都不等于0。
2、复合变换如果图形要做一次以上的几何变换,那么可以将各个变换矩阵综合起来进行一步到位的变换。
复合变换有如下的性质:1)复合平移对同一图形做两次平移相当于将两次的平移两加起来:2)复合缩放两次连续的缩放相当于将缩放操作相乘:3)复合旋转两次连续的旋转相当于将两次的旋转角度相加:缩放、旋转变换都与参考点有关,上面进行的各种变换都是以原点为参考点的。
二维图形的几何变换

二位图形的几何变换算法分析:基本几何变换都是相对于坐标原点和坐标轴进行的几何变换,有平移、比例、旋转、反射和错切等。
1.平移:是指将某点沿直线路径从一个坐标位置移到另一个坐标位置的重定位过程。
他是一种不产生变形而移动物体变换。
可以根据矩阵获得点坐标,求得平移变换矩阵以后,得出点坐标。
(此实验以三维矩阵为例)2.缩放变换:缩放变换是指对p点相对于坐标原点沿x方向放缩Sx倍,沿y方向放缩Sy倍。
其中Sx和Sy称为缩放系数。
缩放变换可改变物体的大小,如下图所示。
当Sx=Sy >1时,图形沿两个坐标轴方向等比例放大;当Sx=Sy<1,图形沿两个坐标轴方向等比例缩小;当Sx≠Sy,图形沿两个坐标轴方向作非均匀的比例变换。
3 旋转变换二维旋转是指将p点绕坐标原点转动某个角度(逆时针为正,顺时针为负)得到新的点p’的重定位过程。
4 对称变换对称变换后的图形是原图形关于某一轴线或原点的镜像。
5 错切变换错切变换也称为剪切、错位变换,用于产生弹性物体的变形处理。
核心代码:int move(int dx, int dy) //将图形进行平面移动{int i;for(i = 0; i < 3; i++){line((array[i].x+dx),(array[i].y+dy),(array[(i+1)%3].x+dx), (array[(i+1)%3].y+dy));}getch();setcolor(0);for(i = 0; i < 3; i++){line((array[i].x+dx),(array[i].y+dy),(array[(i+1)%3].x+dx), (array[(i+1)%3].y+dy));}return 0;}int move_change(int sx,int sy) //平移并缩放{int arr_one[3];int arr_two[3];int i;for(i = 0; i < 3; i++){arr_one[i]=(array[i].x-array[0].x)*sx+array[0].x;arr_two[i]=(array[i].y-array[0].y)*sy+array[0].y;}for(i = 0; i < 3; i++){line(arr_one[i]+120,arr_two[i],arr_one[(i+1)%3]+120,arr_ two[(i+1)%3]);}getch();setcolor(0);for(i = 0; i < 3; i++){line(arr_one[i]+120,arr_two[i],arr_one[(i+1)%3]+120,arr_ two[(i+1)%3]);}return 0;}int turn_around(int x, int y, int a) //旋转图形{int i;int arr_one[3];int arr_two[3];for(i = 0; i < 3; i++){arr_one[i]=(array[i].x-x)*cos(a)-(array[i].y-y)*sin(a)+x;arr_two[i]=(array[i].x-x)*sin(a)+(array[i].y-y)*cos(a)+y;}for(i = 0; i < 3; i++){line(arr_one[i],arr_two[i],arr_one[(i+1)%3],arr_two[(i+1) %3]);}getch();setcolor(0);for(i = 0; i < 3; i++){line(arr_one[i],arr_two[i],arr_one[(i+1)%3],arr_two[(i+1) %3]);}return 0;}int move_turn(int a, int b, int d, int e) //平移并旋转{int i;int arr_one[3];int arr_two[3];for(i = 0; i < 3; i++){arr_one[i]=(a*array[i].x)+(b*array[i].y);arr_two[i]=(d*array[i].x)+(e*array[i].y);}for(i = 0; i < 3; i++){line(arr_one[i]+120+420,arr_two[i],arr_one[(i+1)%3]+12 0+420,arr_two[(i+1)%3]);}getch();setcolor(0);for(i = 0; i < 3; i++){line(arr_one[i]+120+420,arr_two[i],arr_one[(i+1)%3]+12 0+420,arr_two[(i+1)%3]);}return 0;}int move_turn_change(int b, int d) //平移,旋转并缩放{int i;int arr_one[3];int arr_two[3];for(i = 0; i < 3; i++){arr_one[i]=array[i].x+(b*array[i].y);arr_two[i]=(d*array[i].x)+array[i].y;}for(i = 0; i < 3; i++){line(arr_one[i],arr_two[i],arr_one[(i+1)%3],arr_two[(i+1) %3]);}getch();setcolor(0);for(i = 0; i < 3; i++){line(arr_one[i],arr_two[i],arr_one[(i+1)%3],arr_two[(i+1) %3]);}return 0;}实验截图:原图:。
计算机图形学 4章 二维变换

令H= px+qy+s ,同除以H,
计算机科学与技术学院
第4章―11
2016/10/24
齐次坐标变换示意图
计算机图形学
第4章图形裁剪与几何变换
4)使P点绕直线A3B3转a角
计算机科学与技术学院
第4章―29
2016/10/24
计算机图形学
第4章图形裁剪与几何变换
5.使A3B3绕x轴正旋转γ角,恢复到A2B2的位置
6.使A2B2绕Z轴反旋转β角,恢复到A1B1的位置 7.把直线平移到原位置
8.综合变换矩阵:
T=T1· T2· T3· T4· T5· T6· T7
2)使图形绕原点逆时针转动a角, 变换矩阵:
3)再把C点平移到原位,变换矩阵: 思考:
变换矩阵能否写成:
T2· T3 4)综合变换矩阵:T=T1·
计算机科学与技术学院 第4章―16
T=T1· T3· T2?
2016/10/24
计算机图形学
第4章图形裁剪与几何变换
2. 图形对称于任意位置直线
如图:已知图 形ABC,根据需 要使图形相对于 任意直线产生对 称变换,直线的 方程为: ax+by+c=0 求出变换矩阵。
1.绕任意点地旋转变换
法兰盘的端面图,从 图中可看出有八个六个螺 栓孔均布在一个圆周上。 当画好一个螺栓孔后,可 使它绕圆心旋转一定的角 度,就可以得到一个新的 螺栓孔。
计算机科学与技术学院 第4章―15
第4章二维变换.ppt

变换的数学基础(3/4)
– 矢量的长度
U
U U
ux2
2 y
u
2 z
• 单位矢量
• 矢量的夹角 cosq
U V
U V
– 矢量的叉积
i jk U V ux uy uz
vx vy vz
变换的数学基础(4/4)
• 矩阵
– mn
阶矩阵
– n阶方阵
– 零矩阵
– 行向量与列向量
– 单位矩阵
• 优越性 • 提供了用矩阵运算把二维三维甚至高维
空间的点集从一个坐标系变换到另一个 坐标系的方法。 • 可以表示无穷远的点
4.3.2 齐次坐标
什么是齐次坐标表示?
——用一个有n+1个分量的向量去表示一个有n个分量的向量的 方法。例如:
二维点P (x,y)(x,y为笛卡儿直角坐标)齐次坐标表示为:
(0.0,0.0,0.0)~(1.0,1.0,1.0)
坐标变换
用户域
窗口区
4.1.2坐标的转换
用户Y
观察坐标
用户坐标
(X0, Y0)
0
用户X
观察坐标到用户坐标的变换矩阵(写出):
将观察坐标原点平移;旋转观察坐标与用户坐标重叠
4.1 坐标系、窗口与视区(续)
4.1.3什么是窗口、视区? 1. 窗口
二维图形变换(只考虑仿射变换: p=q=0)
采用齐次坐标可将二维图形变换表示成如下形式: ab0
[ x´ y ´ 1 ] = [ x y 1 ] c d 0 lm1
P´=
变换后的 顶点坐标
P•
变换前的 顶点坐标
T2D
二维变换矩阵
第四章 图形变换.ppt

cos
使矩形ABCD绕坐标原点逆时针旋转30°,其各点
坐标为:A(0,0)、B(2,0)、C(2,1.5)、D(0,1.5),则变换
后各点坐标为:0
2 2 0
0
0
0
1.5
1.5
cos30 sin 30
sin 30 cos30
1.732 0.982 0.75
例2:平移——旋转
1 0 0 cos sin 0
T 0 l
1 m
0 sin 1 0
cos
0
0 1
c os
s in
0
sin
cos
0
l cos m sin l sin m cos 1
可见平移量受旋转量影响。
三 三视图的变换矩阵
(一)三维物体数学模型的建立 变换方法
(二) 三视图的变换矩阵
1 主视图投影变换矩阵
主视图是立体向XOZ面(V面)作正投影,立体向 V面作正投影的实质是压缩变形,即所有的 y=0,可通 过单位变换矩阵控制Y坐标的第2列各元素为零,即:
3 对称变换 图 1 0
(1)对XOY坐标平面的对称变换 T 0 1
0 0 0 0
0 0
0 0
1 0
0
1
1
(2)对XOZ坐标平面的对称变换 T 0
0 0
00 1 0 01 00
0
0
0
1
1 0 0 0
(3)对YOZ坐标平面的对称变换T 0 1 0 0
1
平移矩阵为:T 0
l
0 0 1 0
m 1
1 0 0
二维图形的变换

平移、旋转、放大或缩小、对称
Δy
Δx
y
(Cx,Cy)
x
如何实现图形变换?
变换的数学基础
• 1.矢量(向量)运算和性质 vx u x • 矢量
U u y u z
V v y vz
• 矢量和
u x vx U V u v y y u z vz kux k U ku y kuz
• -平移变换 • void move_change(int *coor1,int tx,int ty) • { • int i; • for(i=0;i<4;i++) • { • coor1[2*i]=coor1[2*i]+tx; • coor1[2*i+1]=coor1[2*i+1]+ty ; • } • }
• 对称变换的特点:只 改变图形方位,不改 变其形状和大小。
(x,y) (-x,-y)
• -错切变换 • DEF:如果变换前坐标点(x,y)于变换后
对应的新坐标点(x´,y ´)的关系为 x´=x+cy y ´ =y • 则称这一变换为沿x轴的错切变换,式 中c为错切系数。
•x´=x+cy •y´=y
#define XC 300 //原点横坐标 #define YC 300 //原点纵坐标 void draw_coordi()//画坐标 { setcolor(WHITE); line(0,YC,639,YC); line(XC,0,XC,479); } void my_line(int x1,int y1,int x2,int y2)//画
• 问题(举例)
•矩阵的乘法适 •合交换律吗?
计算机图形学第4章图形变换(2)

5、使直线回到原来位置,结果图形即为原图形绕 指定直线旋转变换后的图形。
直线回到原来位置需要进行(3)~(1)的逆变换,其中:
图形绕空间任意轴旋转的总变换矩阵是
H = T
4.3.5 三维对称变换
三维对称变换可以是关于给定对称轴的或者 是关于给定对称平面的变换。三维对称矩阵的建 立类似于二维的。关于给定对称轴的对称变换等 价于绕此轴旋转180°,可以直接使用已讨论过 的相对于轴线的旋转变换公式。关于给定对称平 面的对称变换其最简单的是对称于坐标平面的变 换。当对称平面是坐标平面时(x-y,或x-z,y-z), 可以将此变换看成是左手系和右手系之间的转换。
变换过程为 [x' y' z' 1]=[x y z 1]· S(Sx,Sy,Sz) 其中,Sx,Sy,Sz分别为在x,y,z坐标轴方向上的 比例系数。
4.3.3 三维旋转变换
三维旋转变换:是指将物体绕某个坐标轴旋转 一个角度,所得到的空间位置变化。我们规定旋 转正方向与坐标轴矢量符合右手法则,即从坐标 轴正值向坐标原点观察,逆时针方向转动的角度 为正。如图所示。
设用户选定的窗口范围为(wxl,wyl)和(wxr,wyr), 视口范围为(vxl,vyl)和(vxr,vyr)。 将窗口中的图形转为视口中图形的过程: 1、先平移窗口使其左下角与坐标原点重合; 2、再比例变换使其大小与视口相等; 3、最后再通过平移使其移到视口位置。
4.3 三维几何变换
三维几何变换是二维几何变换的扩展。三维齐 次变换可用4×4矩阵表示。 平移变换 - 比例变换 - 旋转变换 - 绕空间任意轴 的旋转变换 - 对称变换 - 错切变换
四、二维观察变换将投影平面上矩形窗内的图形 变换到显示器(或规范化)坐标中的视口内。
第4章 二维图形变换_几何变换

y
几何关系
x' y y' x
o
x
矩阵形式
对称变换(5)
x
y 1 x
0 1 0 y 1 1 0 0 y x 1 0 0 1
2.错切变换(shear) (1)沿 x 轴方向关于 y 轴错切
将图形上关于y轴的平行线沿x方向推成θ角的
(4-1)
a b x ' y ' x y T x, y c d x ' ax cy a S x c 0 ' b 0 d S y y bx dy
矩阵形式
x
y x
Sx S y
y
2.旋转变换(rotation)
P
点P绕原点逆时针转θ度角 (设逆时针旋转方向为正方向)
P
x
旋转变换
几何关系
x r cos y r sin
(4-3)
x' r cos( ) r cos cos-r sin sin y ' r sin( ) r cos sin +r sin cos
4.齐次坐标表示
( x1 , x2 ,..., xn )
有n个分量的向量
(x1 , x2 ,..., xn , )
有n+1个分量的向量 哑元或标量因子
( x1 , x2 ,..., xn , )
( x1 / , x2 / ,..., xn / )
齐次坐标表示不是唯一的
1 规格化的齐次坐标
1 2 1 2 1 2 1 2
1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• (0 0 1 0) 表示z轴方向无穷远点
• (0 0 0 1) 表示坐标原点 • 这4个向量将构成四维齐次空间的单位矩阵
2 齐次坐标变换矩阵
• 齐次变换矩阵提供一个三维空间中包括平移、旋转、透 视、投影、反射、错切和比例等变换在内的统一表达式, 使得物体的变换可在统一的矩阵形式下进行。 旋转、错切等 透视变换
0 1 y0
0 Sy 0 0 0 1
y1
1
0 0 1
平移
x2
y2
1 x1
y1
1 1 0 x0
0 1 y0
0 0 1
比例
S x 1 0 0 0 Sy 0 0 0 1
1 T2 0 x0
课 题:二维几何变换 目的要求:掌握平移、旋转、缩放、错切、反射等二 维坐标变换及其矩阵表示以及仿射变换、齐次 坐标等的概念。 教学重点:二维几何变换 教学难点:齐次坐标矩阵表示 教学课时:2课时 教学方法:讲授法、演示法
4.1 窗口视图变换
1.窗口和视图区 • • • 用户坐标系(world coordinate system,简称WC): 用户用来定义设计对象的坐标系,是实数型的二维空间。 设备坐标系(device coordinate system,简称DC): 计算机图形系统的工作空间,是自然数型的二维空间。 窗口区(window) : 在用户坐标系中任意的一个子区域。一般为矩形区域, 可以用其左下角点和右上角点的坐标来表示。 • 视图区(viewport): 设备坐标系的一个子空间。对于显示器而言,显示屏幕 是设备输出图形的最大区域,任何小于或等于屏幕域的区域 都可定义为视图区。一般也为矩形区域。
(2)对称于Y轴 当变换对称于Y轴时,则坐标点P(x,y)经对称变换 后,新坐标点P’(x’,y’)的表达式为:
变换方程写成齐次坐标矩阵形式为:
其中变换矩阵:
对称Y轴变换的几何表示见下图
(3)对称于原点 当图形对X轴和Y轴都进行对称变换时,即为对于坐 标原点的对称变换。变换前后点坐标之间的关系为:
4.2.0 几何变换的基本描述
1 齐次坐标
• 为了能用矩阵的形式统一描述图形变换,在图形学 中常采用齐次坐标的形式来描述空间的点。 • 在n维空间中的一个问题,在n+1维空间中相应地 也有一个问题,而在n+1维空间中却常常比n维空
间中较易获得结果。
• 二维点(x, y)的齐次表示是(hx, hy, h),这里h是任 何一个非零因子,有时叫做比例因子。
赋予相同值时,就产生保持图形相对比例一致的 变换, sx 和sy 值不等时产生X轴方向和Y轴方向大 小不等的比例变换。sx和sy都指定为1时,图形大 小不改变。
实际上,相对于坐标原点图形的比例变换, 相当于每一点相对于坐标原点的变换,因此,它 不但改变图形的大小,而且改变图形的位置。
下图是一图形比例变换的例子:
式中d为错切系数。若d >0,则沿+Y方向错切, 若d<0,则沿-Y方向错 切。右图说明了矩形 ABCD经错切变换后结果 为A’B’C’D’。
变换方程写成齐次坐标矩阵形式为:
其中变换矩阵:
除了沿X轴方向和沿Y轴方向的错切变换外,还可以使 用沿平行于X轴方向的轴线或沿平行于Y轴方向的轴线以及 任一轴线的错切变换。对于这些变换,可以通过先平移、 旋转轴线,转化为沿X轴方向或沿Y轴方向的错切变换。 错切变换不仅改变图形的形状,而且改变图形的方位, 还可能使图形发生畸变。
0 1 y0
0 0 1
x3
y3
1 x2
y2
T T1ST2
平移
1 1 0 x0 0 1 y0 0 0 1
则有
x' x1 y ' 1 x4 y1 1T1ST2 x1 y4 1 y1 1T
x4
y4
1 x3
上面讨论的五种变换(平移、旋转、缩放、对称、 错切)给出的都是点变换的公式,图形的变换实际上都 可以通过点变换完成。例如直线段的变换可通过变换两 个端点,并重画新端点间的线而得到。多边形的变换可 通过变换每个顶点,并用新的顶点来生成多边形而实现。 曲线的变换可通过变换控制点并重画线来完成。 符合形式:
公式的推导可参考右图
变换方程写成齐次坐标矩阵形式为:
其中变换矩阵
上面是点P(x,y)以坐标原点为中心的旋转变换,还可 以任意点P0(x0, y0)为中心做旋转变换。其变换公式为:
其中变换矩阵:
旋转变换只能改变图形的方位,而图形的大小和形 状不变。旋转变换的几何表示见下图。
3 二维缩放变换 一个图形中的坐标点P(x,y),若在X轴方向相对 于坐标原点变化一个比例系数sx ,在Y轴方向相对于坐 标原点变化一个比例系数sy,则新坐标点P(x’, y’)的表
v yt v yb w yt w yb
c
wxl v xl
w yb v yb
b
d
有
xv axw b
(5-5) (5-6)
yv cy w d
4.2
二维几何变换
• 在计算机绘图中,经常要进行从一个几何图形到另一
个几何图形的变换。例如,将图形向某一方向平移一 段距离;将图形旋转一定的角度;将图形放大或缩小 等等。我们把这种变换过程称为几何变换。 • 变换的目的:为使要显示的对象在合适的位置,以合 适的大小和方向显示出来。
写成齐次坐标矩阵形式为:
4. 对称变换 对称变换是产生图形镜象的一种变换,也称镜象或反 射变换。将图形绕对称轴旋转就可以生成镜象图形。 (1)对称于X轴 当变换对称于X轴时,则坐标点P(x,y)经对称变换后, 新坐标点P’(x’,y’)的表达式为:
写成齐次坐标矩阵形式为:
其中变换矩阵:
对称X轴变换的几何表示见下图
达式为:
这一变换称为相对于坐标原点的缩放变换, sx 和sy分别表示点P(x,y)沿X轴方向和Y轴方向相对坐 标原点的缩放系数。缩放变换改变图形的大小。 变换方程写成齐次坐标矩阵形式为:
其中变换矩阵:
缩放系数sx和sy可赋予任何正数值。当值小于 1时缩小图形,值大于1则放大图形。当sx 和sy 被
写成齐次坐标矩阵形式为:
其中变换矩阵:
对称原点变换的几何表示见下图
5.错切变换 错切变换是图形位于某坐标轴上的点不动,其它点 沿平行于此轴方向移动变形的变换。常用的错切变换有 两种:改变x坐标值和改变y坐标值。 (1)沿X轴方向关于Y的错切 变换前和变换后y坐标不变,而x坐标根据y坐标值呈 线性变化。变换前后点的坐标之间的关系为:
二维图形几何变换有五种基本变换形式:平移、
旋转、缩放、对称、错切。 有两种不同的变换方法:一种是图形不动,而坐 标系变动,即变换前与变换后的图形是针对不同坐标 系而言的,称之为坐标模式变换;另一种是坐标系不 动,而图形改变,即变换前与变换后的坐标值是针对 同一坐标系而言的,称之为图形模式变换。实际应用 中,后一种图形变换更有实际意义,下面讨论的图形 变换是属于后一种变换。
yv v yb y w w yb
v xr v xl wxr wxl
v yt v yb w yt w yb
Yu
(4-1)
V yt
(x v , y v)
(4-2)
V yb Ou V xl V xr Xu
窗口与视图区的对应关系
由式(4-1)和式(4-2)可分别解得:
xv
yv
式中c为错切系数。若c>0,则沿+X方向错切,若 c<0,则沿-X方向错切。
矩形ABCD经错切变换后变为A’B’C’D’的结果。
变换方程写成齐次坐标矩阵形式为:
其中变换矩阵:
(2)沿Y轴方向关于X的错切 变换前和变换后x坐标不变,而y坐标根据x坐标值 呈线性变化。变换前后点的坐标之间的关系为:
y3
任意点比例变换示意图
平移变换
比例变换
3 矩阵级联
• 一个变换是由一个单一的数学实体 —— 矩阵来描
述和标识。 • 两个变换的结合用矩阵的级联(相乘)而产生一 个具有两者功效的单一变换。 – 例如变换T是平移,而变换R是旋转,则变换
的结合允许决定一个变换A=TR,其功效是先
平移然后旋转变换。
4.2.1 基本二维几何变换
平移变换只改变图形的位置,不改变图形的大小和 形状。下图是一平移变换的例子。
可以用矩阵形式来表示二维平移变换方程。图形变 换通常使用齐次坐标矩阵来表示。平移变换方程的齐次 坐标矩阵表示式为:
其中
称为变换矩阵。
2 二维旋转变换 若图形中的坐标点P(x,y)绕坐标原点逆时针旋转 一个角度θ , 则新坐标点P(x’,y’)的表达式为:
二维图形的显示流程图
2.窗口到视图区的变换 窗口区与视图区间的映射关系: 窗口区中的任一点(x w , y w) 与视图区中的任一点(x v , y v) 存 在如下对应关系:
Yw
W yt
窗口
(x w , y w)
W yb Ow W xl 视图区 W xr Xw
xv v xl xw wxl
的坐标变换称为二维仿射变换。变换的坐标x’和y’都是 原始坐标x和y的线性函数。参数aij 是由变换类型确定的 常数。仿射变换具有平行线转换成平行线和有限点映射 到有限点的一般特性。
4.2.2 复合变换(级联)
所谓二维图形的复合变换,就是在XY平面内,对一 个已定义的图形,按一定顺序进行多次变换而得到新的 图形。 一般把上面讨论的几种变换称为基本的图形变换, 绝大部分复杂的图形变换都可以通过这些基本变换的适 当组合来实现。利用前面所提供的矩阵表示,就可通过 计算单个变换的矩阵乘积,将任意顺序变换的矩阵建立 为复合变换矩阵。
• 在几何造型中,可用图形变换改变物体间的相对位置, 可用透视变换和投影变换产生同一三维景物在各种不 同视点位置和视线方向下的不同影像。