我正在制作太阳系的 3D 模拟
对于每个行星,我都有一个Celestial Body类的实例。我正在使用以下代码进行太阳、行星及其卫星的公转和自转。
world = Matrix.CreateTranslation(0,0,0) * Matrix.CreateRotationY(rotation) * Matrix.CreateTranslation(position) * Matrix.CreateRotationY(revolution);
- 旋转是我的浮动变量,用于行星绕自己的轴旋转
- 革命是我的浮动变量,用于行星在轨道上的旋转
- 位置是我的 vector3 变量,以将身体置于轨道上或距离中心的半径处,例如
postion = new Vector3(70,0,0)
现在它工作得很好。
但问题是我需要找到\得到我的星球的位置,在矩阵乘法之后,它在x,y,x坐标中被翻译到哪里。
如何 ?获取我星球的当前 X , Y , Z 坐标
对我来说,另一个选择是使用一些数学公式为我计算二维圆。