1、第5章图形变换与裁剪 5 1齐次坐标5 2窗口到视区的变换5 3图形几何变换5 4三维图形的基本问题5 5平面几何投影5 6直线段裁剪5 7多边形裁剪 所谓齐次坐标表示法就是由n 1维向量表示一个n维向量 如n维向量 P1 P2 Pn 表示为 hP1 hP2 hPn h 其中h称为哑坐标 5 1齐次坐标 1 h可以取不同的值 所以同一点的齐次坐标不是唯一的 如普通坐标系下的点 2 3 变换为齐次坐标可以是 1 1 5 0 5 4 6 2 6 9 3 等等 2 普通坐标与齐次坐标的关系为 一对多 由普通坐标 h 齐次坐标由齐次坐标 h 普通坐标3 当h 1时产生的齐次坐标称为 规格化坐标 因为前
2、n个坐标就是普通坐标系下的n维坐标 5 1齐次坐标 5 1齐次坐标 x y 点对应的齐次坐标为 x y 点对应的齐次坐标为三维空间的一条直线 1 将各种变换用阶数统一的矩阵来表示 提供了用矩阵运算把二维 三维甚至高维空间上的一个点从一个坐标系变换到另一坐标系的有效方法 2 便于表示无穷远点 例如 x h y h h 令h等于03 齐次坐标变换矩阵形式把直线变换成直线段 平面变换成平面 多边形变换成多边形 多面体变换成多面体 图形拓扑关系保持不变 4 变换具有统一表示形式的优点便于变换合成便于硬件实现 齐次坐标的作用 第5章图形变换与裁剪 5 1齐次坐标5 2窗口到视区的变换5 3图形几何变换5
3、 4三维图形的基本问题5 5平面几何投影5 6直线段裁剪5 7多边形裁剪 5 2窗口视图变换 用户域和窗口区1 用户域 程序员用来定义草图的整个自然空间 WD a 人们所要描述的图形均在用户域中定义 b 用户域是一个实数域 理论上是连续无限的 2 窗口区 用户指定的任一区域 W a 窗口区W小于或等于用户域WDb 小于用户域的窗口区W叫做用户域的子域 c 窗口可以有多种类型 矩形窗口 圆形窗口 多边形窗口等等d 窗口可以嵌套 即在第一层窗口中可再定义第二层窗口 在第I层窗口中可再定义第I 1层窗口等等 5 2窗口视图变换 1 屏幕域 DC 设备输出图形的最大区域 是有限的整数域 如图形显示器分
4、辨率为1024 768 DC 0 1023 0 767 2 视图区 任何小于或等于屏幕域的区域a 视图区用设备坐标定义在屏幕域中b 窗口区显示在视图区 需做窗口区到视图区的坐标转换 c 视图区可以有多种类型 圆形 矩形 多边形等 d 视图区也可以嵌套 窗口区到视图区的坐标变换 设窗口的四条边界Wxl Wxr Wyb Wyt视图的四条边界Vxl Vxr Vyb Vyt 窗口区中的任一点 xw yw 与视图区中的任一点 xv yv 存在如下对应关系 由式 5 1 和式 5 2 可分别解得 令 窗口区到视图区的坐标变换 窗口区和视图区的坐标变换 简化为 1 当a c时 即x方向的变化与y方向的变化不
5、同时 视图中的图形会有伸缩变化 图形变形 2 当a c 1 b d 0则Xs Xw Ys Yw 图形完全相同 第5章图形变换与裁剪 5 1齐次坐标5 2窗口到视区的变换5 3图形几何变换5 4三维图形的基本问题5 5平面几何投影5 6直线段裁剪5 7多边形裁剪 图形变换是计算机图形学基础内容之一 几何变换 投影变换 视窗变换线性变换 属性不变 拓扑关系不变 作用 把用户坐标系与设备坐标系联系起来 可由简单图形生成复杂图形 可用二维图形表示三维形体 动态显示 5 3图形变换 图形的几何变换 图形变换 对图形的几何信息经过几何变换后产生新的图形 图形变换的两种形式 1 图形不变 坐标系改变 2 图
6、形改变 坐标系不变 二维图形的几何变换 设二维图形变换前坐标为 x y 1 变换后为 x y 1 1 二维变换矩阵注意 T2D可看作三个行向量 其中 100 表示x轴上的无穷远点 010 表示y轴上的无穷远点 001 表示原点 二维图形的几何变换 从变换功能上可把T2D分为四个子矩阵 二维基本变换 平移变换 平移变换平移变换只改变图形的位置 不改变图形的大小和形状 二维基本变换 比例变换 以坐标原点为放缩参照点当Sx Sy 1时 恒等比例变换当Sx Sy 1时 沿x y方向等比例放大 当Sx Sy 1时 沿x y方向等比例缩小当Sx Sy时 沿x y方向作非均匀的比例变换 图形变形 二维基本变
7、换 对称变换 当Sx 1 Sy 1时 x y 1 xy1 与y轴对称的反射变换 当Sx 1 Sy 1时 x y 1 x y1 与x轴对称的反射变换 当Sx 1 Sy 1时 x y 1 x y1 与原点对称的反射变换 二维基本变换 旋转变换 注意 是逆时针旋转角度 x y x y 二维基本变换 错切变换 1 当d 0时 x y 1 x byy1 图形的y坐标不变 当b 0 图形沿 x方向作错切位移 ABCD A1B1C1D1当b 0 图形沿 x方向作错切位移 ABCD A2B2C2D2 二维基本变换 错切变换 2 当b 0时 x y 1 xdx y1 图形的x坐标不变 当d 0 图形沿 y方向作
8、错切位移 ABCD A1B1C1D1当d 0 图形沿 y方向作错切位移 ABCD A2B2C2D2 二维基本变换 错切变换 3 当b 0且d 0时 x y 1 x bydx y1 图形沿x y两个方向作错切位移 错切变换引起图形角度关系的改变 甚至导致图形发生变形 复合变换 复合变换又称级联变换 指对图形做一次以上的几何变换 注意 任何一个线性变换都可以分解为上述几类变换 例1 复合平移 求点P x y 经第一次平移变换 Tx1 Ty1 第二次平移变换 Tx2 Ty2 后的坐标P x y 解 设点P x y 1 经第一次平移变换后的坐标为P x y 1 则经第二次平移变换后的坐标为P x y
9、1 变换矩阵为Tt Tt1 Tt2 例2 多种复合组合 例 对一线段先放大2倍 即Sx Sy 2 再平移Tx 10 Ty 0 解 设点 x y 为线段上的任意一点 点 x y 为点 x y 放大后的坐标 点 x y 为点 x y 平移后的坐标 则 x y 1 x y 1 S2 2 2 x y 1 x y 1 T2 10 0 x y 1 x y 1 T2 10 0 x y 1 S2 2 2 T2 10 0 令 M S2 2 2 T2 10 0 则M即为组合变换 例3 旋转变换 对参考点F xf yf 做旋转变换 解 1 把旋转中心F xf yf 平移至坐标原点 即坐标系平移 xf yf 则2 进
10、行旋转变换 例3 旋转变换 将坐标系平移回原来的原点因此变换矩阵 例4 任意反射轴的反射变换 任一图形关于任意反射轴y a bx的反射变换解 1 将坐标原点平移到 0 a 处 例4 任意的反射轴的反射变换 2 将反射轴 已平移后的直线 按顺时针方向旋转 角 使之与x轴重合3 图形关于x轴的反射变换4 将反射轴逆时针旋转 角 例4 任意的反射轴的反射变换 5 恢复反射轴的原始位置因此 平移物体使固定点与坐标原点重合对于坐标原点缩放用步骤1的反向平移将物体移回原始位置 例5 通用固定点缩放 例6 通用定向缩放 比例变换中的比例因子Sx Sy只能在x轴方向或y轴方向起作用 实际图形变换中 不仅是在x
11、 y方向变换 往往要求在任意方向进行比例变换 通过旋转变换和比例变换的组合 可以实现任意方向的比例变换 解 定义比例因子S1和S2 1 使S1和S2旋转 角后分别与x轴和y轴重合 2 进行比例变换 3 使S1和S2旋转 角 返回原始位置 通用定向缩放 如 图 a 为一单位正方形 对由 0 0 和 1 1 两点构成的对角线方向实施比例变换 2 1 三维几何变换 三维其次坐标 x y z 点对应的齐次坐标为标准齐次坐标 x y z 1 右手坐标系 三维几何变换 变换矩阵平移变换比例变换 三维变换矩阵 对称变换 在二维变换下 对称变换是以线和点为基准 在三维变换下 对称变换则是以面 线 点为基准的
12、对称于XOY平面 x y z 1 xy z1 xyz1 对称于YOZ平面 x y z 1 xyz1 xyz1 对称于XOZ平面 x y z 1 x yz1 xyz1 三维变换矩阵 旋转变换 绕X轴变换空间上的立体绕X轴旋转时 立体上各点的X坐标不变 只是Y Z坐标发生相应的变化 x xy cos y cos z sin z sin y sin z cos X Y Z y z y z Y Z O O y z y z Z 三维变换矩阵 旋转变换 矩阵表示为 遵循右手法则 即若 0 大拇指指向轴的方向 其它手指指的方向为旋转方向 三维变换矩阵 旋转变换 绕Y轴旋转此时 Y坐标不变 X Z坐标相应变化
13、 x sin x cos z sin y yz cos z cos x sin X Y Z x z x z X Z O O Z 三维变换矩阵 旋转变换 矩阵表示为 三维变换矩阵 旋转变换 绕Z轴旋转此时 Z坐标不变 X Y坐标相应变化 x cos x cos y sin y sin x sin y cos z z X Y Z x y x y X Y O O 三维变换矩阵 旋转变换 矩阵表示为 绕任意轴的旋转变换 基本思想 因任意轴不是坐标轴 应设法旋转该轴 使之与某一坐标轴重合 然后进行旋转 角的变换 最后按逆过程 恢复该轴的原始位置 绕任意轴的旋转变换 1 将空间直线平移 使之通过坐标原点
14、T 0100 0010 X1 Y1 Z11 1000 2 绕x轴旋转 角使之位于XOZ平面内 直线段L在YOZ平面上的投影L L 2 B2 C2Sin B L cos C L z x y B C A L L P Q D 绕任意轴的旋转变换 0cos sin 0 0 sin cos 0 0001 1000 Rx 3 绕y轴顺时针旋转 角 使之与Z轴重合 由于绕x轴旋转时 x坐标不变 A L L Sin A Lcos L L L2 A2 B2 C2 L 2 绕任意轴的旋转变换 0100 sin 0cos 0 0001 cos 0sin 0 Ry sin cos 00 0010 0001 cos s
15、in 00 Rz 4 绕z轴旋转 角 绕任意轴的旋转变换 5 绕y轴逆时针旋转 角 使之位于XOZ平面内 sin 0cos 0 0001 Ry cos 0 sin 0 0100 6 绕x轴顺时针旋转 使之恢复通过原点的直线 0sin cos 0 0001 Rx 1000 0cos sin 0 绕任意轴的旋转变换 7 平移使坐标原点返回到它原始位置 0010 X1y1z11 T 1000 0100 因此 绕空间任意轴旋转角的变换矩阵 R T Rx Ry Rz Ry Rx T 绕任意轴的旋转变换 作业 1 已知平面一点P xp yp 与直线L的方程ax by c 0 现P相对L作反射变换 写出对应的变换矩阵