在以某个弧度/度数围绕另一个3D点旋转后计算3D点位置的公式是什么?我正在使用Java / LWLJGL。
有人可以填写下面的空白吗?
public Vector3f rotate(Vector3f origin, Vector3f rotation)
{
Vector3f ret = new Vector3f();
ret.x = __________;
ret.y = __________;
ret.z = __________;
}
答案 0 :(得分:1)
考虑你的固定点在时间t1
和时间t2
处的(x2,y2,z2)处具有坐标(a,b,c)和移动物体(x1,y1,z1)。
选项1
您可以考虑x-y
平面上的投影和y-z
平面上的投影,并计算该2D空间中的角度。
选项2
你可以考虑两个向量。说矢量A
和B
A=(x1-a)i+(y1-b)j+(z1-c)k
B=(x2-a)i+(y2-b)j+(z2-c)k
现在使用A
和B
A . B = |A||B|cos(angle)