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轴重合