Transcript 第5章二维几何变换
课程内容进展
综述
‘图形学’和‘图形系统’
建模
曲线曲面 实体造型
观察
观察流水线 裁剪
显示
可见面判别
其它
UI 动画 ……
光照 面绘制
坐标系统
基本图元
几何变换
第三讲 几何变换
Geometric
Transformations
第三讲主要内容
基本变换:平移,缩放,旋转
矩阵表示和齐次坐标,逆变换
复合变换
其它变换:反射,错切
坐标系间的变换
OpenGL几何变换相关函数
二维几何变换的光栅方法
仿射变换
二维/三维
第三讲小结
基本变换类型及其变换矩阵
坐标变换矩阵的使用(效率、顺序)
用简单变换组合成复杂变换的方法
二维/三维坐标系的变换
给出将任意梯形变换成等腰梯形的变换矩阵。
假设坐标系如图
y
t
y
h
45
b
(b>t)
a
x
x
(1) 原梯形左下顶点移到坐标系原点
y
(2) 错切成等腰梯形
y
t
t
h
h
b
b
x
x
y
t*a/b
y
t*a/b
h
45
a
(3) X向比例变换使底边为a
a
(4) y向比例变换使斜角为45 °
End of 第三讲
二维平移
将物体沿直线路径从一个坐标位置到另一个坐标位置
不产生变形,属于刚体变换
P’ = P + T
--各类图元的平移均可通过
点的平移来实现。
--删除旧点,绘制新点
二维旋转
将物体沿圆弧路径重定位
相对于原点的旋转
P’ = R· P
P’ =
P
二维缩放
改变物体的尺寸,位置也随之改变
平移P’ = P + T
旋转P’ = R· P
P’ =
P
缩放P’ = S· P
相对于原点的缩放
P’ = S· P
齐次坐标的引入
(X,Y)
(Xh,Yh,h)
(hX,hY,h)
(X,Y,1)
平移
旋转
缩放
P’ = M· P
逆变换
复合变换
复合平移
复合缩放
复合旋转
不同类型变换的复合——用途?计算方法?
相对于非原点的旋转和缩放
绕任意点的旋转
平移物体--使基准点和坐标原点重合
绕坐标原点旋转
反向平移--使基准点回到原始位置
=
通用固定点缩放
平移物体--使固定点与坐标原点重合
相对于坐标原点缩放
反向平移--将物体移回原始位置
通用定向缩放
s2
s1
复合变换的用途和特点
任意仿射变换都可以由若干次基本变换
有序组合而成
顺序不同,变换结果可能不同
复合变换的计算效率
P’=M3M2M1P
M=M3M2M1
3x4 次乘法,3x4次加法
?
一次使用?
多次使用?
P’=MP
4次乘法,4次加法
反射:物体的镜像
Y轴反射
X轴反射
绕Y轴旋转180度
绕X轴旋转180度
原点反射
绕原点在XY平面上旋转180度
任意直线反射
任意点反射
错切:形状被拉伸变化
标准X向错切
shx=0.5
参考其它水平线的X向错切
shx=0.5, yref = -1
Y向错切(可参考竖直线)
shx=0, shy = 1
shx=0.5, shy = 1
shx=0.5, shy =0
XY向错切(可同时参考水平
和竖直线)
已知XY坐标系下坐标
二维坐标系的变换
求X’Y’坐标系下坐标
x0,y0
二维坐标系的变换-单位向量法
u
三维平移和缩放
平移
缩放
(相对于
原点)
绕坐标轴的三维旋转
(y)
(y)
点P(xr,yr,zr)绕Z轴旋转:
即在Z=zr这个平面上旋转
(x)
(z)
(x)
(z)
•绕Z轴旋转
•绕X轴旋转
•绕Y轴旋转
x’
y’
z’ =
1
1 0
0
0
0 cos -sin 0
0 sin cos 0
0 0
0 1
x’
y’
z’ =
1
cos 0 sin 0
0
1
0
0
-sin 0 cos 0
0
0
0
1
x
y
z
1
x
y
z
1
绕任意轴旋转
M=T-1.Rx-1.Ry-1.Rz().Ry.Rx.T
平移使旋转轴过原点
T
绕Z轴旋转指定角
Rz()
绕X轴旋转使旋转轴
落到XZ平面 Rx
绕Y轴旋转使旋转轴
与Z轴重合 Ry
Ry-1
Rx-1
T-1
其它三维变换
反射
–
–
–
点反射
轴反射
平面反射
(原点)(非原点)
绕轴转180°
坐标平面,非坐标平面
错切
–
Z轴错切
Z
改变X、Y坐标
Z坐标保持不变
x’=x+shzxz
y’=y+shzyz
Z
Z轴错切
Shzx=1
Shzy=1
三维坐标系的变换
T=
1
0
0
0
0
1
0
0
0 -x0
0 -y0
1 -z0
0 1
复合变换 P’=R·T·P
已知XYZ坐标系下坐标
求X’Y’Z’坐标系下坐标
OpenGL几何变换相关函数
OpenGL几何变换相关函数
二维几何变换的光栅方法
直接对帧缓存内的像素块操作,从而高效地实
现一些简单几何变换
平移--原像素块的隐藏,新像素块的设置
90度倍数的旋转--像素块矩阵的行列互换
非90度倍数的旋转 像素块变换和映射,
计算平均覆盖亮度(颜色)
像素块的缩放
仿射变换
仿射变换形式为
特点:
–
平行线转换成平行线,有限点转换成有限点
–
平移、旋转、缩放、反射和错切是仿射变换的特例
–
任何仿射变换总可以表示为这五种变换的组合
绕x轴旋转
绕y轴旋转
Step2:将任意轴旋转两次后和z轴重合