Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 围绕另一个旋转对象_Java_Android_Math_3d_Rotation - Fatal编程技术网

Java 围绕另一个旋转对象

Java 围绕另一个旋转对象,java,android,math,3d,rotation,Java,Android,Math,3d,Rotation,我今天的问题是我想让一个物体转另一个物体。就像地球绕着太阳转一样。我用Java编程 我把相机作为参考点(太阳),放在需要绕着这个参考点旋转的物体上(地球) 我知道: 两个对象之间的距离:d 摄像头的位置:pCam 对象的位置:pObj 我需要旋转的角度:a 我想在对象在距离d内围绕参考位置pCam旋转a角度后找到对象的新位置 你能帮我吗?好的,我解决了我的问题 我使用此函数围绕另一个点旋转一个角度(以度为单位): 为了记住对象的位置,我使用以下代码片段: SimpleVector diff

我今天的问题是我想让一个物体转另一个物体。就像地球绕着太阳转一样。我用Java编程

我把相机作为参考点(太阳),放在需要绕着这个参考点旋转的物体上(地球)

我知道:

  • 两个对象之间的距离:d
  • 摄像头的位置:pCam
  • 对象的位置:pObj
  • 我需要旋转的角度:a
我想在对象在距离d内围绕参考位置pCam旋转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);