常见坐标变换列表 (List of common coordinate transformations)

二维坐标变换

设 (x, y) 为标准笛卡尔坐标系中的点。以下是一些常见的二维坐标变换:

  • 平移: 将点沿 x 轴和 y 轴移动一定距离。

    变换公式: x’ = x + tx, y’ = y + ty (其中 tx 和 ty 分别是 x 和 y 方向的平移量)

  • 缩放: 将点沿 x 轴和 y 轴进行缩放。

    变换公式: x’ = sx * x, y’ = sy * y (其中 sx 和 sy 分别是 x 和 y 方向的缩放因子)

  • 旋转: 将点绕原点旋转一定角度。

    变换公式: x’ = x * cos(θ) – y * sin(θ), y’ = x * sin(θ) + y * cos(θ) (其中 θ 是旋转角度)

  • 剪切: 沿 x 轴或 y 轴产生剪切效果。

    变换公式 (x 方向剪切): x’ = x + shx * y, y’ = y (其中 shx 是 x 方向的剪切因子)

    变换公式 (y 方向剪切): x’ = x, y’ = y + shy * x (其中 shy 是 y 方向的剪切因子)

三维坐标变换

三维坐标变换比二维变换更为复杂,涉及三个坐标轴。以下是常见的三维坐标变换:

  • 平移: 将点沿 x、y 和 z 轴移动一定距离。

    变换公式: x’ = x + tx, y’ = y + ty, z’ = z + tz (其中 tx, ty, tz 分别是 x, y, z 方向的平移量)

  • 缩放: 将点沿 x、y 和 z 轴进行缩放。

    变换公式: x’ = sx * x, y’ = sy * y, z’ = sz * z (其中 sx, sy, sz 分别是 x, y, z 方向的缩放因子)

  • 旋转: 将点绕 x、y 或 z 轴旋转一定角度。 绕每个轴的旋转都需要使用不同的旋转矩阵。

    绕 X 轴旋转: x’ = x, y’ = y * cos(θ) – z * sin(θ), z’ = y * sin(θ) + z * cos(θ)

    绕 Y 轴旋转: x’ = x * cos(θ) + z * sin(θ), y’ = y, z’ = -x * sin(θ) + z * cos(θ)

    绕 Z 轴旋转: x’ = x * cos(θ) – y * sin(θ), y’ = x * sin(θ) + y * cos(θ), z’ = z

  • 投影: 将三维点映射到二维平面。这包括平行投影和透视投影。 透视投影会产生近大远小的效果。

齐次坐标

为了方便使用矩阵运算来进行各种变换,通常使用齐次坐标。在二维中,一个点 (x, y) 表示为 (x, y, 1)。在三维中,一个点 (x, y, z) 表示为 (x, y, z, 1)。使用齐次坐标,可以将平移变换也表示为矩阵乘法,使所有变换操作统一起来。

坐标变换的应用

坐标变换广泛应用于各个领域,例如:

  • 计算机图形学: 用于物体的建模、动画和渲染。
  • 机器人学: 用于机器人运动控制和位姿估计。
  • 图像处理: 用于图像的缩放、旋转、裁剪和配准。
  • 地理信息系统 (GIS): 用于地图投影和坐标转换。

结论

坐标变换是许多计算机和工程学科的基础,理解并掌握这些变换对于解决实际问题至关重要。从简单的平移和缩放到复杂的旋转和投影,坐标变换提供了强大的工具来操纵和分析空间数据。熟练运用这些变换可以使我们更好地理解和操控虚拟世界和现实世界。

参考资料