使用矩阵在 3D 中定位对象 space
Using a matrix to position objects in 3D space
使用 3D 矩阵变换时,是否可以为每个对象仅使用一个矩阵来定位、旋转和缩放对象?我是否还需要维护一组单独的位置信息以便执行诸如 "rotate around arbitrary point"?
之类的操作
我问是因为我不太清楚如何(特别是...)围绕任意点旋转,尽管这涉及对象空间信息的一般管理。
您需要一个 4x4 矩阵。 3D 中的 3x3 矩阵 space 仅描述 线性 变换,不包括定位(平移)。
有关实施的更多详细信息,请参阅此处:
http://www.euclideanspace.com/maths/geometry/affine/matrix4x4/。更多关于 Google.
例如围绕任意点P旋转,构造如下矩阵:
- A:按减 P
翻译
- B:你的旋转(欧拉角或其他)
- C:由plus翻译 P
您想要的最终矩阵是 CBA(按此顺序,假设与向量进行右乘)
使用 3D 矩阵变换时,是否可以为每个对象仅使用一个矩阵来定位、旋转和缩放对象?我是否还需要维护一组单独的位置信息以便执行诸如 "rotate around arbitrary point"?
之类的操作我问是因为我不太清楚如何(特别是...)围绕任意点旋转,尽管这涉及对象空间信息的一般管理。
您需要一个 4x4 矩阵。 3D 中的 3x3 矩阵 space 仅描述 线性 变换,不包括定位(平移)。
有关实施的更多详细信息,请参阅此处: http://www.euclideanspace.com/maths/geometry/affine/matrix4x4/。更多关于 Google.
例如围绕任意点P旋转,构造如下矩阵:
- A:按减 P 翻译
- B:你的旋转(欧拉角或其他)
- C:由plus翻译 P
您想要的最终矩阵是 CBA(按此顺序,假设与向量进行右乘)