使用矩阵在3D空间中定位对象

时间:2016-08-05 07:45:45

标签: 3d rotation position matrix-transform

使用3D矩阵变换时,是否可以仅为每个对象使用矩阵来定位,旋转和缩放对象?我是否还需要维护一组单独的位置信息,以便执行“围绕任意点旋转”等操作?

我问,因为我无法弄清楚如何(特别是......)围绕任意点旋转,尽管这与对象的空间信息的一般管理有关。

1 个答案:

答案 0 :(得分:1)

你需要一个4x4矩阵。 3D空间中的3x3矩阵仅描述线性变换,不包括定位(平移)。

有关实施的详细信息,请参见此处: http://www.euclideanspace.com/maths/geometry/affine/matrix4x4/。谷歌还有更多。

E.g。要围绕任意点 P 进行旋转,请构造以下矩阵:

  • A 减去的翻译 P
  • B :您的轮换(欧拉角或其他)
  • C 加上翻译 P

您想要的最终矩阵是 CBA (按此顺序,假设与向量进行右乘)