将坐标转换为另一个坐标系

时间:2011-11-29 09:05:49

标签: .net computer-science coordinates coordinate-transformation

所以我在3D坐标系(红色)中有四个矩形(蓝色)角的坐标。我想创建一些矩阵,将红色坐标系中矩形上的任何给定点转换为绿色坐标系中的(2D)点。

illustration

我猜这类似于从3D模型中的相机到屏幕的转换,但我没有相机的坐标和矢量。您是否可以在此推荐文章或想法,或者您是否有要分享的矩阵/算法?

1 个答案:

答案 0 :(得分:3)

当从一个坐标系转换到另一个坐标系时,主要动作是对齐这些系统。这里你需要的是:

  • 将蓝色矩形的左下角点(2D坐标系的原点)转换为3D坐标系的原点(T)
  • 使用旋转(R1)
  • 对齐两个系统的x轴
  • 将另一个轴(y轴)与另一个旋转对齐。 (R2)

在线性代数中,变换以相反的顺序应用,因此在3D空间中给定点p,您可以得到以下结果:

R2 * R1 * T * p

关于Translation MatrixRotation Matrix的维基百科文章是关于如何计算这些矩阵的好资源。

作为最后的提醒,你需要使用坐标的同质形式,即; P(X,Y,Z,1)