使用3D矩阵变换时,是否可以仅为每个对象使用矩阵来定位,旋转和缩放对象?我是否还需要维护一组单独的位置信息,以便执行“围绕任意点旋转”等操作?
我问,因为我无法弄清楚如何(特别是......)围绕任意点旋转,尽管这与对象的空间信息的一般管理有关。
答案 0 :(得分:1)
你需要一个4x4矩阵。 3D空间中的3x3矩阵仅描述线性变换,不包括定位(平移)。
有关实施的详细信息,请参见此处: http://www.euclideanspace.com/maths/geometry/affine/matrix4x4/。谷歌还有更多。
E.g。要围绕任意点 P 进行旋转,请构造以下矩阵:
您想要的最终矩阵是 CBA (按此顺序,假设与向量进行右乘)