Java 围绕另一个旋转对象
我今天的问题是我想让一个物体转另一个物体。就像地球绕着太阳转一样。我用Java编程 我把相机作为参考点(太阳),放在需要绕着这个参考点旋转的物体上(地球) 我知道:Java 围绕另一个旋转对象,java,android,math,3d,rotation,Java,Android,Math,3d,Rotation,我今天的问题是我想让一个物体转另一个物体。就像地球绕着太阳转一样。我用Java编程 我把相机作为参考点(太阳),放在需要绕着这个参考点旋转的物体上(地球) 我知道: 两个对象之间的距离:d 摄像头的位置:pCam 对象的位置:pObj 我需要旋转的角度:a 我想在对象在距离d内围绕参考位置pCam旋转a角度后找到对象的新位置 你能帮我吗?好的,我解决了我的问题 我使用此函数围绕另一个点旋转一个角度(以度为单位): 为了记住对象的位置,我使用以下代码片段: SimpleVector diff
- 两个对象之间的距离:d
- 摄像头的位置:pCam
- 对象的位置:pObj
- 我需要旋转的角度:a
你能帮我吗?好的,我解决了我的问题 我使用此函数围绕另一个点旋转一个角度(以度为单位): 为了记住对象的位置,我使用以下代码片段:
SimpleVector diff = this.getPosition().calcSub(ref);
SimpleVector s = rotateAround(center, ref, (float) angle);
s.x += diff.x;
// Rotation only on a plane (2 axis)
s.y = this.getPosition().y;
s.z += diff.z;
this.positioningObject(s);
到目前为止你试过什么?这是3D变换矩阵的一个非常基本的使用示例,所以如果你用谷歌搜索一下,你会发现大量的示例和教程。提示:(合并:将旋转中心平移到(0,0,0),按a应用旋转,向后平移)
SimpleVector diff = this.getPosition().calcSub(ref);
SimpleVector s = rotateAround(center, ref, (float) angle);
s.x += diff.x;
// Rotation only on a plane (2 axis)
s.y = this.getPosition().y;
s.z += diff.z;
this.positioningObject(s);