我正在构建一个 3D 模拟。
我正在使用一个类来显示具有不同大小、纹理、速度和轨道的太阳、行星和月亮。这是我的代码,它完成了计算旋转+旋转的神奇工作
world = Matrix.CreateScale(size,size,size) * Matrix.CreateTranslation(0,0,0) *
Matrix.CreateRotationY(rotation) *
Matrix.CreateTranslation(position) *
Matrix.CreateRotationY(revolution);
- size是我单独缩放对象的变量
- 旋转是我的变量,用于围绕自己的轴旋转对象
- 位置是我将行星定位在轨道上的变量,新 Vector3(240,0,0)
- 革命是我的变量,使地球围绕原点旋转
现在我想展示围绕地球和其他行星的卫星,但我不知道该怎么做。就矩阵乘法而言。
复杂之处在于月球的公转是围绕着一个不属于起源并且一直在变化的行星。
怎么做 ?