【发布时间】:2018-07-17 04:41:25
【问题描述】:
如果我有一个矩阵,那么点 O(0,0,0) 将被转换为某个点 P(x, y, z)。因此,围绕当前位置旋转矩阵实际上是将矩阵乘以围绕 P 的旋转矩阵。
所以我想要一个类似的函数:
mat4 rotate(mat4 matrix, vec3 axis, float angle);
我目前的想法是:
vec4 p = {0, 0, 0, 1};
p = p * matrix;
generate translation matrix T, from point p
generate rotation matrix R, from axis and angle
return matrix * T * R * -T;
但我觉得应该有更有效的方法来做到这一点......
【问题讨论】:
-
不是真的,我就是这样做的。
-
矩阵乘以 (0,0,0) 得到 (0,0,0)。
-
@beta 但它不是 (0, 0, 0) 它是 (0, 0, 0, 1),因为它是一个点
标签: c++ opengl matrix linear-algebra coordinate-transformation