计算机图形学二维变换

合集下载

计算机图形学_ 二维图形变换_55 窗口视区变换_

计算机图形学_ 二维图形变换_55 窗口视区变换_
为了全部、如实地在视区中显示出窗口内的图形对象,就 必须求出图形在窗口和视区间的映射关系
需要根据用户所定义的参数,找到窗口和视区之间的坐标 对应关系
y
世界坐标系
y
屏幕坐标系
wyt
vyt
窗口
视区
P(x,y)
wyb
P’(sx,sy)
vyb
0
wxl
wxr
x0
vxl
vxr x
窗口到视区的映射是基于一个等式,即对每一个在世界坐标 下的点(x,y),产生屏幕坐标系中的一个点(sx,sy)
sx vl vr vl
x wl wr wl
sx A* x C sy B * y D
sx x wl (vr vl) vl wr wl
sx vr vl x (vl vr vl wl)
wr wl
wr wl
A看做放大x的部分,而C看做常数
A vr vl wr wl
窗口、视区及变换
一、窗口和视区
世界坐标系中要显示的区射到显示器(设备)上的区域称为视区
窗口定义显示什么;视区定义在何处显示
y
wyt
wyb 0
窗口
wxl
wxr
世界坐标系
y
vyt 视区
vyb
x
0 vxl
vxr x
设备坐标系
世界坐标系中的一个窗口可以对应于多个视区
C vl A*wl
同理,y方向上保持比例性质满足:
sy vb y wb
vt vb
wt wb
sx A* x C sy B * y D
B vt vb wt wb
D vb B*wb
这个映射可用于任意点(x,y),不管它是否 在窗口之中。在窗口中的点映射到视口中的 点,在窗口外的点映射到视口外的点

计算机图形学-变换

计算机图形学-变换
1
第3章 变换
基本的二维几何变换 二维复合变换 其他二维变换 三维几何变换 OpenGL几何变换函数 三维图形的显示流程 投影 裁剪
2
几何变换
应用于对象几何描述并改变它的位置、方 向或大小的操作称为几何变换(geometric transformation) 基本的二维几何变换包括平移、旋转和缩 放
8
矩阵表示和齐次坐标
许多图形应用涉及到几何变换的顺序 需要用一个通式来表示平移、旋转和缩放
P M1 P M 2
将2×2矩阵扩充为3×3矩阵,可以把二维几 何变换的乘法和平移项组合为单一矩阵表示
9
二维平移矩阵
x 1 0 t x x y 0 1 t y y 1 0 0 1 1
三维坐标轴旋转
X轴坐标不变,循环替代x、y、z三个 轴可以得到绕x轴旋转的公式
z
y ' y cos z sin
y
z ' y sin z cos x' x
x
35
三维坐标轴旋转
y轴坐标不变,循环替代x、y、z三个 轴可以得到绕y轴旋转的公式
x
z
y
z ' z cos x sin x' z sin x cos y' y
glMatrixMode (GL_MODELVIEW); glColor3f (0.0, 0.0, 1.0); glRecti (50, 100, 200, 150); //显示蓝色矩形
glColor3f (1.0, 0.0, 0.0); glTranslatef (-200.0, -50.0, 0.0); glRecti (50, 100, 200, 150); //显示红色、平移后矩形

计算机图形学6(陈永强)

计算机图形学6(陈永强)
Y
Y
X (e)关于x=-y对称
X (d)关于x=y对称
11
基本几何变换——对称变换
(1)关于x轴对称
Y
1a 0 b 0 1 c d m 0l 0
0 p 0 q s 1
P(x,y) X P'(x,-y)
图6-5 关于x轴对称
12
基本几何变换——对称变换
24
复合变换——二维复合旋转
cos1 sin 1 0 cos 2 Tr Tr1 Tr 2 sin 1 cos1 0 sin 2 0 1 0 0 cos(1 2 ) sin(1 2 ) 0 sin(1 2 ) cos(1 2 ) 0 0 0 1 sin 2 cos 2 0 0 0 1
1 b 0 c 1 0 0 0 1
(3)两个方向错切
18
二维图形几何变换的计算
几何变换均可表示成P’=P*T的形式。 1. 点的变换
x'
y ' 1 x
a b y 1 c d l m
p q r
19
二维图形几何变换的计算
2. 直线的变换
0 cos 0 0 0 1
1 0 tg 1 0
0
tg 1 0
0 1
0
26
6.3.5相对任一参考点的二维几何变换
相对某个参考点(xF,yF)作二维几何变换,其变 换过程为: (1) 平移; (2) 针对原点进行二维几何变换; (3) 反平移。
27
相对任一参考点的二维几何变换
P' P T P (T1 T2 T3 Tn ) P T1 T2 T3 Tn (n 1)

计算机图形学之图形变换

计算机图形学之图形变换

4 T
3
2 p
1
0
012 34 567 8
线段和多边形的平移可以通过顶点的
平移来实现。同样线段和多边形的其它几 何变换也可以通过对顶点的几何变换来实 现。
2. 旋转变换(Rotation) 二维旋转有两个参数:
旋转中心: 旋转角:

6 P’
5
4
3
P
2
1
0
012 34 567 8
设OP与x轴的夹角为 则:
由于采用齐次坐标矩阵表示几何变换, 多个变换的序列相应地可以用矩阵链乘来表 示。
需要注意:先作用的变换其矩阵在右边, 后作用的变换其矩阵在左边。
变换函数
平移变换 void glTanslate{fd}(TYPE x, TYPE y, TYPE z);
旋转变换 void glRotate{fd}(TYPE angle, TYPE x, TYPE y, TYPE z); 绕矢量v=(x,y,z)T逆时针方向旋转angle指定的角度。 旋转角度的范围是0~360度。当angle=0时, glRotate()不起作用。
二维旋转有两个参数: 旋转中心: 旋转角:
上述变换可以分解为三个基本变换:
•平移:
•旋转:
•平移: 回原位。
使旋转中心移到坐标原点; 使旋转中心再移
二维旋转有两个参数: 旋转中心: 旋转角:
因此上述变换可以写成矩阵乘积形式:
4. 5 基本三维几何变换(Basic three-dimensional geometric transformation)
1. 矩阵表示(Matrix representation) 前面三种变换都可以表示为如下的矩
阵形式

计算机图形学_ 二维图形变换_53 二维图形变换原理及齐次坐标_

计算机图形学_ 二维图形变换_53 二维图形变换原理及齐次坐标_
普通坐标×h→齐次坐标 齐次坐标÷h→普通坐标 当h = 1时产生的齐次坐标称为“规格化坐标”,因为前n个 坐标就是普通坐标系下的n维坐标
为什么要采用齐次坐标?
在笛卡儿坐标系内,向量(x,y)是位于z=0的平面上的点 ;而向量(x,y,1)是位于z=1的等高平面上的点
对于图形来说,没有实质性的差别,但是却给后面矩阵运 算提供了可行性和方便性
假如变换前的点坐标为(x,y),变换后的点坐标为(x*,y* ),这个变换过程可以写成如下矩阵形式:
x*, y*x,
x* a1x b 1 y c1
y•M
x*, y*x
a1
y
1
b 1
c1
a2 b2 c2
上两式是完全等价的。对于向量(x,y,1),可以在几何意义 上理解为是在第三维为常数的平面上的一个二维向量。
这种用三维向量表示二维向量,或者一般而言,用一个n+1维 的向量表示一个n维向量的方法称为齐次坐标表示法
n维向量的变换是在n+1维的空间进行的,变换后的n维结果 是被反投回到感兴趣的特定的维空间内而得到的。
如n维向量(p1,p2,...,pn)表示为(hp1,hp2,...,hpn,h), 其中h称为哑坐标。 普通坐标与齐次坐标的关系为“一对多”:
变换图形就是要变换图形的几何关系,即改变顶点的坐 标;同时,保持图形的原拓扑关系不变
仿射变换(Affine Transformation或 Affine Map)是一 种二维坐标到二维坐标之间的线性变换 (1)“平直性”。即:直线经过变换之后依然是直线
(2)“平行性”。即:平行线依然是平行线,且直线上 点的位置顺序不变)
采用了齐次坐标表示法,就可以统一地把二维线形变换表示 如下式所示的规格化形式:

计算机图形学 5.1二维变换

计算机图形学 5.1二维变换

a11b13 a12b23 a13b33 a 21b13 a 22b23 a 23b33 (5-1) a n1b13 a n 2 b23 a n3b33
由线性代数知道,矩阵乘法不满足交换律,只有左矩 阵的列数等于右矩阵的行数时,两个矩阵才可以相乘。 特别地,对于二维变换的两个3×3的方阵A和B,矩阵 相乘公式为:
5.1.1 规范化齐次坐标
为了使图形几何变换表达为图形顶点集合矩阵与 某一变换矩阵相乘的问题,引入了规范化齐次坐标。 所谓齐次坐标就是用n+1维矢量表示n维矢量。 例如,在二维平面中,点P(x,y)的齐次坐标表示为 (wx,wy,w)。类似地,在三维空间中,点P(x,y,z) 的齐次坐标表示为(wx,wy,wz,w)。这里,w为任一 不为0的比例系数,如果w=1就是规范化的齐次坐标。 二维点P(x,y)的规范化齐次坐标为〔x,y,1〕,三维 点P(x,y,z)的规范化齐次坐标为〔x,y,z,1〕。不 能写成下标形式,w和x,w和y,w和z是乘法的关系。 定义了规范化齐次坐标以后,图形几何变换可以 表示为图形顶点集合的规范化齐次坐标矩阵与某一变换 矩阵相乘的形式。
x1 x P 2 xn y1 y2 yn 1 1 1
变换后图形顶点集合的规范化齐次坐标矩阵为:
x'1 x' ' P 2 x' n y '1 y' 2 y'n 1 1 1
a b 二维变换矩阵为: T c d l m
a11b11 a12b21 a13b31 a11b12 a12b22 a13b32 a b a b a b a 21b12 a 22b22 a 23b32 21 11 22 21 23 31 a n1b11 a n 2 b21 a n3b31 a n1b12 a n 2 b22 a n3b32

第4章二维变换

第4章二维变换

• 性质
U •V = V •U U •V = 0 ⇔ U ⊥ V U •U = 0 ⇔ U = 0
变换的数学基础(3/4) 变换的数学基础
– 矢量的长度
• 单位矢量 • 矢量的夹角
2 U = U • U = u x + u y + u z2 2
U •V cos θ = U •V
– 矢量的叉积
i U ×V = ux vx
– 在世界坐标系( 在世界坐标系(WCS)中指定的矩形区域 , ) 用来指定要显示的图形 。
2. 视区
– 在设备坐标系(屏幕或绘图纸) 在设备坐标系(屏幕或绘图纸)上指定的矩形区域 , 用来指定窗口内的图形在屏幕上显示的大小及位置。 用来指定窗口内的图形在屏幕上显示的大小及位置。
3. 窗口到视区的变换
P′=P+Tm 等价于
[x’ y’]=[x y] +[Mx My]
图形变换的特点( 4.3.1 图形变换的特点(续)
比例变换 P′=P×Ts
Sx 0 Ts= 0 Sy Sx、Sy分别表示比例因子。 cosθ sinθ Tr= -sinθ cosθ θ>0时为逆时针旋转 θ<0时为顺时针旋转
旋转变换 P'=P×Tr
变换后的 顶点坐标
P
变换前的 顶点坐标

T2D
二维变换矩阵
二维变换矩阵中: a b 是对图形进行缩放、旋转、对称、错切等变换。 c d [ l m] 是对图形进行平移变换
• 计算机图形场景中所有图形对象的空间定位和定义,包括观 计算机图形场景中所有图形对象的空间定位和定义, 察者的位置视线等,是其它坐标系的参照。 察者的位置视线等,是其它坐标系的参照。
2.模型坐标系(Modeling Coordinate System,也称局部坐标系) 模型坐标系

计算机图形学图形变换

计算机图形学图形变换

(X0,y0)
绕任意点的旋转
1 0 0
• 用矩阵表示各个过程
T1
0
1 0
x 1y 11 xy1 T 1
x0 y0 1
x 2y 21 x 1y 11 T 2
cos T2 sin
sin cos
0 0
x ' y ' 1 x 2 y 21 T 3
0
0 1
1 0 0
x ' y ' 1 x 2 y 21 T 3
cos
sin
0
TT1T2T3 sin
cos
0
x0(1co)sx0siny0co sy0 1
复合矩阵可以减少计算量
• 不进行矩阵合并 往往在屏幕上划定一个平行于设备坐标轴的矩形区域作为图形显示区。
点P(x,y)在X’轴上的投影可用点乘得到, 常用的方法是在图形坐标系中取一个与x轴、y轴平行的矩形窗口,只显示窗口内的图形内容。
计算机图形学图形 变换
二维图形平移
• 二维图形平移是将图形上任 意一点P(x,y)在x轴方向y轴方 向分别平移距离tx,ty,则变 换后的新坐标
x’=x+tx
ty
y’=y+ty
• 用矩阵表示
1 [x',y'][x,y]0
1 0tx,ty
P’ p
tx
二维图形旋转
• 二维图形旋转是将图形绕圆
点旋转。图形上任意一点
2. 3次变换需要3×9=27次乘法。 这不仅可以节省运算量,还可以明确一个矩阵代表一种变换的概念。
Y’轴的单位方向矢量为(a21,a22) 这不仅可以节省运算量,还可以明确一个矩阵代表一种变换的概念。 复合矩阵可以减少计算量 我们希望将一种变换用一个矩阵来表示,这样就可以用矩阵合并的方法将一系列的简单变换用一个复杂变换来表示。 有时采用活动坐标系模式,是为了更好地理解变换前后两个对应物体之间的坐标关系。 表示变换前的模型上任意一点 仿射变换的特点是变换前的平行线在变换后依然平行。 变换图形、变换关系式和变换矩阵 合并矩阵与一个点向量相乘得到一个点向量,需要9次乘法。 固定坐标系模式:坐标系不变、图形变动。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
P' = P R R(q ) = -sinq cosq 0
0 0 cosq -sinq 0 0 cosq sinq 0 1 0 0 1
(旋转变换矩阵)
R-1 (q ) = sinq cosq
三、对称变换
– 关于x轴的对称变换
1 0 0 SYx 0 1 0 0 0 1
– 矢量和
u x vx U V u v y y u z vz
变换的数学基础(2/4)
– 矢量的数乘
kux k U ku y kuz
– 矢量的点积
U V u x vx u y v y u z vz
直线、圆生成算法的实现 多边形扫描转换与填充 颜色的改变,线型与线宽的设置 简单平面图形的设计 **简单动画设计
例如
• 奥运五环绘制与填充; • 字符的绘制与填充;
图形变换概述
• 图形变换是计算机图形学的基础内 容。 • 作用:
1. 二维图形的生成 2. 复杂的图形的生成(由简单图形变换) 3. 三维物体的二维表示
• 点的基本几何变换的推广 – 直线,多边形,曲线……
图形几何变换—按某种规律,改变图形的形状、大 小、位置等。
建立物体的 变换到 在VC空间
WC
VC
进行裁剪
投影到 NDC
变换到 DC 二. 图形变换的过程
在图形设备 上输出
二维图形的显示流程图
基本几何变换(二维)
旋转变换
y
(x’, y’) 对称变换
坐标变换
用户域
窗口区
4.1.2坐标的转换
用户Y
用户坐标
观察坐标
(X0, Y0)
0
用户X
观察坐标到用户坐标的变换矩阵(写出):
将观察坐标原点平移;旋转观察坐标与用户坐标重叠
4.1 坐标系、窗口与视区(续) 4.1.3什么是窗口、视区?
1. 窗口

在世界坐标系(WCS)中指定的矩形区域 , 用来指定要显示的图形 。
2. 视区
– 在设备坐标系(屏幕或绘图纸)上指定的矩形区域 , 用来指定窗口内的图形在屏幕上显示的大小及位置。
3. 窗口到视区的变换
“取景器”=窗 口
视区1 视区2 (viewport)
4.1 坐标系、窗口与视区(续)
4.1.4规格化变换 从窗口到视区的变换,称为规格化变换。 (Normalization Transformation) y wyT wyB o wxL wxR x y W(窗口区) (wx,wy) vyB o vx L vxR vyT (vx,vy) x V(视图区)
l m
P
X’ X
(l,m)
方法A 坐标系不动, 图形变动后坐标值变化
方法B 坐标系变化后 图形在新坐标系中的新值
本课程:变换方法的选择
选择A:坐标系不动,图形变动后坐标值变化
P P’
4.3.1 图形变换的特点 图形变换就是改变图形的几何关系,即改变图形顶点的坐 标,但图形的拓扑关系不变。 最基本的图形变换可以分别用矩阵形式表示为: 平移变换 : P′=P+Tm
( x, y)
x' x dx y ' y dy
请写出它的变换矩阵:
二、旋转变换
注意
旋转方向 旋转角度 旋转中心 旋转是刚体变换
y
q
P’ (x’, y’)
q

P(x, y)
x
- 推导:
方法:点P(x,y)的极坐标表示
• 旋转变换(续)
– 绕坐标原点旋转角度 q (逆时针为正,顺时针 为负)
• 性质
U V V U U V 0 U V U U 0 U 0
变换的数学基础(3/4)
– 矢量的长度
• 单位矢量 • 矢量的夹角
2 2 U U U ux u y uz 2
U V cos q U V
– 矢量的叉积
i U V ux vx
窗口到视区(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章 二维变换
本章主要内容
• 窗口与视区
– 坐标系、窗口与视区
• 图形变换的数学基础 • 二维几何变换
– 基本变换、复合(组合)变换
• 二维图形的生成程序实现
目前为止,掌握的基本技能
• 基本绘图函数的使用:
– pDC->SetPixel – Cpen类(线型与线宽的设置)等
• • • • •
平行投影 透视投影
二维变换举例
旋转变换
y
(x’, y’) 对称变换
q
( x, y)
f
x
平行投影变换:三视图、轴测图
透视变换:区
• 4.1.1坐标系:建立了图形与数之间的对应联系。 1.世界坐标系(World Coordinate System)
问题:都是二维几何变换,如何用统一 的向量(矩阵)表示??
4.3.2 齐次坐标 —用n+1维向量表示n维向量
• 优越性
• 提供了用矩阵运算把二维三维甚至高维 空间的点集从一个坐标系变换到另一个 坐标系的方法。 • 可以表示无穷远的点
4.3.2 齐次坐标
什么是齐次坐标表示? ——用一个有n+1个分量的向量去表示一个有n个分量的向量的 方法。例如: 二维点P (x,y)(x,y为笛卡儿直角坐标)齐次坐标表示为: (h×x,h×y, h) h是任一不为0的比例系数。当h=1时,称为规格化齐次坐标。 反之, 给定一个点的齐次坐标表示: (x,y,h), 该点的二维笛卡儿直角坐标: (x / h,y / h)。 例如:有一个二维点的坐标(25,40)其齐次坐标为??
• 计算机图形场景中所有图形对象的空间定位和定义,包括观 察者的位置视线等,是其它坐标系的参照。
2.模型坐标系(Modeling Coordinate System,也称局部坐标系)
• 物体的局部坐标系,物体的表示简单。
世界坐标系xoy
模型坐标系x’o’y’
3.用户坐标系(UCS) :
• 为了方便交互绘图操作,根据用户的观察需要而设定的坐标, 可以变换角度、方向等。
j uy vy
k uz vz
变换的数学基础(4/4)
• 矩阵 – m n
– – – – – – – – –
阶矩阵
n阶方阵 零矩阵 行向量与列向量 单位矩阵 矩阵的加法 矩阵的数乘 矩阵的乘法 矩阵的转置 矩阵的逆
4.3 二维基本几何变换
• 点的变换:
– – – – – – 恒等变换 平移变换 比例变换 旋转变换 对称变换 错切变换
Tm=[Mx My]
Mx、My分别为X方向和Y方向的平移量。
P′=P+Tm 等价于
[x’ y’]=[x y] +[Mx My]
4.3.1 图形变换的特点(续)
比例变换 P′=P×Ts
Sx 0 Ts= 0 Sy Sx、Sy分别表示比例因子。
旋转变换 P'=P×Tr
cosθ sinθ Tr= -sinθ cosθ θ>0时为逆时针旋转 θ<0时为顺时针旋转
– 关于y轴的对称变换
1 0 0 SYy 0 1 0 0 0 1
• 对称变换(续)
– 关于原点的对称变换
1 0 0 SO 0 1 0 0 0 1
– 关于y=x的对称变换
• 为什么需要齐次坐标?
多个变换作用于多个目标
变换合成
变换合成的问题 引入齐次坐标
变换的表示法统一
4.3.2齐次坐标
三维点P(x,y,z):
同样,对于一个三维空间的向量(x,y,z), 它在四维空间中对应的向 量即齐次坐标为(x×h,y×h,z×h,h),其中h≠0。反之,??
齐次坐标的概念可以推广到n维空间的向量。
4.3.3齐次坐标二维图形变换矩阵
一般形式: a b p c d q l m s
[ x´ y ´ 1 ] = [ x y 1 ]
P ´ = P • T2D 二维变换矩阵中: a b 是对图形进行缩放、旋转、对称、错切等变换。 c d [ l m] 是对图形进行平移变换。 S 是整体比例变换。 p,q 用于投影变换(三维投影变换时使用——非仿射变换)
4.2 图形变换的数学基础
• 矢量运算 • 行列式 • 矩阵
特别注意: 矩阵相乘不适合交换律
• 矩阵运算
• 单位矩阵 • 逆矩阵 • 转置矩阵
上机编程:实现矩阵的输入与输出; 实现两个矩阵相乘。
变换的数学基础(1/4)
• 矢量
u x U u y u z
vx V v y vz
x´=ax+cy+l y ´ =bx+dy+m (二维仿射变换:
p=q=0)
二维图形变换(只考虑仿射变换:
p=q=0)
采用齐次坐标可将二维图形变换表示成如下形式: a b 0 [ x´ y ´ 1 ] = [ x y 1 ] c d 0 l m 1
P ´ =
变换后的 顶点坐标
P
变换前的 顶点坐标

4.设备坐标系
(左手法则)
显示器以分辨率确定坐标单位, 原点在左下角或左上角。
相关文档
最新文档