使一组3D点围绕一个点旋转

时间:2013-06-27 17:49:12

标签: java 3d rotation lwjgl trigonometry

在以某个弧度/度数围绕另一个3D点旋转后计算3D点位置的公式是什么?我正在使用Java / LWLJGL。

有人可以填写下面的空白吗?     public Vector3f rotate(Vector3f origin, Vector3f rotation)
{
Vector3f ret = new Vector3f();
ret.x = __________;
ret.y = __________;
ret.z = __________;
}

1 个答案:

答案 0 :(得分:1)

考虑你的固定点在时间t1和时间t2处的(x2,y2,z2)处具有坐标(a,b,c)和移动物体(x1,y1,z1)。

选项1 您可以考虑x-y平面上的投影和y-z平面上的投影,并计算该2D空间中的角度。

选项2 你可以考虑两个向量。说矢量AB

A=(x1-a)i+(y1-b)j+(z1-c)k 
B=(x2-a)i+(y2-b)j+(z2-c)k 

现在使用AB

的点积
 A . B = |A||B|cos(angle)
相关问题