当前位置: 首页 > news >正文

计算机图形学|三维变换与变换矩阵

三维坐标系系统

1.1 三维坐标系的分类与作用

三维图形处理涉及多个层次的坐标系,服务于特定的处理阶段:

坐标系类型 英文名称 主要功能 特点
世界坐标系 World Coordinates 描述物体在全局空间中的位置 右手笛卡尔坐标系,用户定义
观察坐标系 View Coordinates 简化投影变换,确定观察方向 基于观察点和观察方向建立
模型坐标系 Modeling Coordinates 局部物体建模 又称局部坐标系
设备坐标系 Device Coordinates 控制具体输出设备 与物理设备相关
规格化设备坐标系 Normalized Device Coordinates 建立设备无关的图形系统 坐标范围标准化

1.2 坐标系手性约定

在三维图形中,坐标系的手性(左/右手系)至关重要:

  • 右手坐标系:大拇指指向X轴正方向,食指指向Y轴正方向,中指指向Z轴正方向
  • 左手坐标系:大拇指指向X轴正方向,食指指向Y轴正方向,中指指向Z轴负方向

大多数图形系统采用右手坐标系,但DirectX等系统使用左手坐标系。


三维齐次坐标与变换矩阵

三维齐次坐标表示

三维点 \((x, y, z)\) 在齐次坐标下表示为 \((hx, hy, hz, h)\),标准化形式为 \((x, y, z, 1)\)。所有三维仿射变换均可统一为 \(4 \times 4\) 矩阵乘法:

\( [x', y', z', 1] = [x, y, z, 1] \cdot M_{4 \times 4} \)


基本三维几何变换矩阵

3.1 平移变换

平移变换矩阵:
\( T(t_x, t_y, t_z) = \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ t_x & t_y & t_z & 1 \end{bmatrix} \)

变换公式:
\( \begin{cases} x' = x + t_x \\ y' = y + t_y \\ z' = z + t_z \end{cases} \)

3.2 比例变换

3.2.1 不等比例变换

\( S(S_x, S_y, S_z) = \begin{bmatrix} S_x & 0 & 0 & 0 \\ 0 & S_y & 0 & 0 \\ 0 & 0 & S_z & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} \)

3.2.2 整体等比例变换

\( S_{global}(s) = \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1/s \end{bmatrix} \)

3.3 旋转变换

旋转变换遵循右手法则:大拇指指向旋转轴正方向,四指弯曲方向为正旋转方向。

3.3.1 绕Z轴旋转θ角

\( R_z(\theta) = \begin{bmatrix} \cos\theta & -\sin\theta & 0 & 0 \\ \sin\theta & \cos\theta & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} \)

3.3.2 绕X轴旋转θ角

\( R_x(\theta) = \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & \cos\theta & -\sin\theta & 0 \\ 0 & \sin\theta & \cos\theta & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} \)

3.3.3 绕Y轴旋转θ角

\( R_y(\theta) = \begin{bmatrix} \cos\theta & 0 & \sin\theta & 0 \\ 0 & 1 & 0 & 0 \\ -\sin\theta & 0 & \cos\theta & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} \)

3.4 对称变换

3.4.1 关于坐标平面对称

  • 关于XOY平面:\(z' = -z\)
    \( M_{xoy} = \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & -1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} \)
  • 关于YOZ平面:\(x' = -x\)
    \( M_{yoz} = \begin{bmatrix} -1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} \)
  • 关于ZOX平面:\(y' = -y\)
    \( M_{zox} = \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & -1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} \)

3.4.2 关于坐标轴对称

  • 关于X轴:\(y' = -y, z' = -z\)
    \( M_x = \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & -1 & 0 & 0 \\ 0 & 0 & -1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} \)
  • 关于Y轴:\(x' = -x, z' = -z\)
    \( M_y = \begin{bmatrix} -1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & -1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} \)
  • 关于Z轴:\(x' = -x, y' = -y\)
    \( M_z = \begin{bmatrix} -1 & 0 & 0 & 0 \\ 0 & -1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} \)

3.4.3 关于原点对称

\( M_{origin} = \begin{bmatrix} -1 & 0 & 0 & 0 \\ 0 & -1 & 0 & 0 \\ 0 & 0 & -1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} \)

3.5 错切变换

3.5.1 沿X方向错切

\( H_x(b, c) = \begin{bmatrix} 1 & 0 & 0 & 0 \\ b & 1 & 0 & 0 \\ c & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} \)
其中b、c为错切系数。

3.5.2 沿Y方向错切

\( H_y(a, c) = \begin{bmatrix} 1 & a & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & c & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} \)

3.5.3 沿Z方向错切

\( H_z(a, b) = \begin{bmatrix} 1 & 0 & a & 0 \\ 0 & 1 & b & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} \)

3.6 逆变换

每个基本变换都有对应的逆变换:

变换类型 逆变换矩阵 说明
平移 \(T^{-1} = T(-t_x, -t_y, -t_z)\) 反向平移
比例 \(S^{-1} = S(1/S_x, 1/S_y, 1/S_z)\) 倒数缩放
旋转 \(R^{-1}(\theta) = R(-\theta)\) 反向旋转
整体比例 \(S_{global}^{-1}(s) = S_{global}(1/s)\) 倒数整体缩放

三维复合变换

4.1 相对任一参考点的三维变换

对于参考点\(F(x_f, y_f, z_f)\) 的变换分为三步:

  1. 平移参考点到原点:\(T_1 = T(-x_f, -y_f, -z_f)\)
  2. 执行基本变换:\(T_2\)(旋转、缩放等)
  3. 平移回原位置:\(T_3 = T(x_f, y_f, z_f)\)

复合变换矩阵:\(M = T_1 \cdot T_2 \cdot T_3\)

4.2 绕任意轴的三维旋转变换

绕任意轴AB旋转θ角是三维变换中最复杂的操作之一。设轴AB由点A(x₁, y₁, z₁)和点B(x₂, y₂, z₂)定义,旋转过程分为以下步骤:

步骤1:平移使A点与原点重合

\( T_1 = \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ -x_1 & -y_1 & -z_1 & 1 \end{bmatrix} \)

步骤2:旋转使AB轴与某一坐标轴重合

\(\overrightarrow{AB} = (a, b, c)\),其中:
\( a = x_2 - x_1, \quad b = y_2 - y_1, \quad c = z_2 - z_1 \)

子步骤2.1:绕X轴旋转α角使AB落在XOZ平面
\( \cos\alpha = \frac{c}{\sqrt{b^2 + c^2}}, \quad \sin\alpha = \frac{b}{\sqrt{b^2 + c^2}} \)
\( R_x(\alpha) = \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & \cos\alpha & -\sin\alpha & 0 \\ 0 & \sin\alpha & \cos\alpha & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} \)

子步骤2.2:绕Y轴旋转β角使AB与Z轴重合
\( L = \sqrt{a^2 + b^2 + c^2}, \quad \cos\beta = \frac{\sqrt{b^2 + c^2}}{L}, \quad \sin\beta = \frac{a}{L} \)
\( R_y(-\beta) = \begin{bmatrix} \cos\beta & 0 & \sin\beta & 0 \\ 0 & 1 & 0 & 0 \\ -\sin\beta & 0 & \cos\beta & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} \)

步骤3:绕Z轴旋转θ角

\( R_z(\theta) = \begin{bmatrix} \cos\theta & -\sin\theta & 0 & 0 \\ \sin\theta & \cos\theta & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} \)

步骤4:执行逆变换恢复原坐标系

复合变换矩阵为:
\( M = T_1^{-1} \cdot R_x^{-1}(\alpha) \cdot R_y^{-1}(-\beta) \cdot R_z(\theta) \cdot R_y(-\beta) \cdot R_x(\alpha) \cdot T_1 \)

简化表示为:
\( M = T_1^{-1} \cdot R_x(-\alpha) \cdot R_y(\beta) \cdot R_z(\theta) \cdot R_y(-\beta) \cdot R_x(\alpha) \cdot T_1 \)

4.3 通用任意轴变换流程

对于绕任意轴AB的任意变换T,通用流程如下:

原始坐标系↓ T₁: 平移使A点与原点重合
A点在原点的坐标系↓ T₂: 旋转使AB轴与Z轴重合
AB与Z轴重合的坐标系↓ T₃: 执行绕Z轴的变换
变换后的坐标系↓ T₄: 逆旋转恢复AB方向
AB方向恢复的坐标系↓ T₅: 逆平移恢复A点位置
最终坐标系

复合矩阵:\(M = T_5 \cdot T_4 \cdot T_3 \cdot T_2 \cdot T_1\)


变换矩阵的性质与运算

5.1 变换矩阵的级联性质

三维变换矩阵的级联遵循以下性质:

  • 结合律:\((A \cdot B) \cdot C = A \cdot (B \cdot C)\)
  • 不满足交换律:\(A \cdot B \neq B \cdot A\)
  • 单位矩阵:\(I \cdot A = A \cdot I = A\)

5.2 变换的分解与组合

任何三维仿射变换可分解为:
\( M = T \cdot R \cdot S \cdot H \)
其中:
-\(T\):平移变换
-\(R\):旋转变换
-\(S\):比例变换
-\(H\):错切变换

在实际应用中,通常按"缩放→旋转→平移"的顺序组合变换。


三维变换矩阵总结表

变换类型 变换矩阵(4×4齐次坐标) 参数说明
平移 \(T(t_x, t_y, t_z) = \begin{bmatrix} 1&0&0&0\\0&1&0&0\\0&0&1&0\\t_x&t_y&t_z&1 \end{bmatrix}\) \(t_x, t_y, t_z\): 平移量
比例 \(S(S_x, S_y, S_z) = \begin{bmatrix} S_x&0&0&0\\0&S_y&0&0\\0&0&S_z&0\\0&0&0&1 \end{bmatrix}\) \(S_x, S_y, S_z\): 比例因子
绕X轴旋转 \(R_x(\theta) = \begin{bmatrix} 1&0&0&0\\0&\cos\theta&-\sin\theta&0\\0&\sin\theta&\cos\theta&0\\0&0&0&1 \end{bmatrix}\) \(\theta\): 旋转角度
绕Y轴旋转 \(R_y(\theta) = \begin{bmatrix} \cos\theta&0&\sin\theta&0\\0&1&0&0\\-\sin\theta&0&\cos\theta&0\\0&0&0&1 \end{bmatrix}\) \(\theta\): 旋转角度
绕Z轴旋转 \(R_z(\theta) = \begin{bmatrix} \cos\theta&-\sin\theta&0&0\\\sin\theta&\cos\theta&0&0\\0&0&1&0\\0&0&0&1 \end{bmatrix}\) \(\theta\): 旋转角度
X方向错切 \(H_x(b, c) = \begin{bmatrix} 1&0&0&0\\b&1&0&0\\c&0&1&0\\0&0&0&1 \end{bmatrix}\) \(b, c\): 错切系数
关于XOY对称 \(M_{xoy} = \begin{bmatrix} 1&0&0&0\\0&1&0&0\\0&0&-1&0\\0&0&0&1 \end{bmatrix}\)
关于YOZ对称 \(M_{yoz} = \begin{bmatrix} -1&0&0&0\\0&1&0&0\\0&0&1&0\\0&0&0&1 \end{bmatrix}\)
关于ZOX对称 \(M_{zox} = \begin{bmatrix} 1&0&0&0\\0&-1&0&0\\0&0&1&0\\0&0&0&1 \end{bmatrix}\)

总结与展望

  1. 统一表示:通过4×4齐次坐标矩阵统一所有三维仿射变换
  2. 基本变换:平移、旋转、缩放、对称、错切构成基础变换集
  3. 复合变换:通过矩阵级联实现复杂变换,顺序至关重要
  4. 任意轴旋转:通过坐标系对齐技术实现绕任意轴的旋转
http://www.zskr.cn/news/125039.html

相关文章:

  • 数据安全新选择:访答本地知识库的隐私守护之道
  • 详细介绍:ThinkPHP 5.1 程序在 Nginx 和 Apache 下的性能对比
  • 实实在在不夸大值得推荐的银川AI搜索优化公司——智美天创
  • 个人经验记录
  • 聊天软件项目系统设计总结
  • 完整教程:xorrisofs的系统架构与开源地址
  • 2025年12月篮球场运动木地板,实木运动木地板,枫木运动木地板厂家推荐,高性能与可靠性兼具的优质品牌 - 品牌鉴赏师
  • RPA在财务领域的应用,重塑管理会计发展格局 - 详解
  • Day6 16. 位置互换 -卡码网C++基础课
  • Java毕业设计如何顺利凭借
  • langfuse-LLM 模版评估选择
  • 升级二进制kubernetes集群(小版本升级)
  • AI也会说谎?揭秘可靠RAG让智能助手不再胡说八道
  • Day6 14. 句子缩写 -卡码网C++基础课
  • 实用指南:VirtualBox 6.1.50 新建 Windows 7 Ultimate SP1 64位虚拟机完整流程指南
  • why name should be short
  • 河南山特UPS电源标杆|艾佩斯20年专注全场景电源解决方案 - 朴素的承诺
  • 2025中国电线电缆品牌推荐:全场景电力传输的优质之选 - 黑马榜单
  • 寒假/日常实习经历
  • 为什么员工绩效评估不起作用
  • 奇正沐古:靠谱的汽车用品营销战略咨询公司 - 资讯焦点
  • 权威第三方给出的品牌营销策划公司排行榜 - 资讯焦点
  • 联动创新:重庆美团三快小额贷款有限公司与大湾区书写未来科技故事! - 资讯焦点
  • 10373_基于Springboot的云备份系统软件
  • 科技联动:重庆京东盛际小额贷款有限公司以科技创新赋能金融服务升级 - 资讯焦点
  • 2025年离型膜源头厂家推荐榜:聚焦白色离型膜/蓝色离型膜/红色离型膜厂家高精密与定制化,实力企业全解析! - 海棠依旧大
  • 2025年12月Gemini,RaaS服务,企业级部署代理服务商推荐:行业测评与选择指南 - 品牌鉴赏师
  • 数据采集第5小组 旅宝开发经历分享
  • 2025年Q4国内GPU平台权威推荐:TOP5榜单资源稳定、运维实测指南 - AIEO
  • P2319 [HNOI2006] 超级英雄