0

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

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

4

1 回答 1

1

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

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

例如,围绕任意点P旋转,构造以下矩阵:

  • A : P的翻译
  • B:您的旋转(欧拉角或其他)
  • C : 翻译 P

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

于 2016-08-05T09:04:47.687 回答