C# XNA 矩阵 - 找出矩阵乘法后的当前位置
我正在为每个行星制作太阳系的 3D 模拟,
我有一个天体类的实例。我使用以下代码来计算太阳、行星和行星的公转和自转。他们的卫星。
world = Matrix.CreateTranslation(0,0,0) * Matrix.CreateRotationY(rotation) * Matrix.CreateTranslation(position) * Matrix.CreateRotationY(revolution);
- 旋转是我的浮点变量,用于行星绕其自身轴
- 旋转 旋转是我的浮点变量,用于行星在轨道上的旋转
- 位置是我的向量3变量,用于将物体置于轨道上或距中心的半径处,例如
position = new Vector3 (70,0,0)
现在它工作得很好。
但问题是我需要定位 \ 获取我的星球的位置,在矩阵乘法之后按字面意思翻译成 x,y,x 坐标。
如何?获取我的星球的当前 X 、 Y 、 Z 坐标,
对我来说另一个选择是使用一些数学公式来为我计算 2D 圆。
i am making 3D Simulation of Solar System
for every planet i have an instance of class Celestial Body. I am using the following code for revolution and rotation of sun, planets & their moons.
world = Matrix.CreateTranslation(0,0,0) * Matrix.CreateRotationY(rotation) * Matrix.CreateTranslation(position) * Matrix.CreateRotationY(revolution);
- rotation is my float variable for rotation of planet around its own axis
- revolution is my float variable for revolution of planet in orbit
- position is to my vector3 variable to put the body in orbit or at its radius from center e.g
postion = new Vector3(70,0,0)
Now it works really fine.
But the problem is i need to locate \ get the position of my planet, to where it has been translated after the Matrix multiplication literally in x,y,x co-ordinates.
How To ? get the current X , Y , Z coordinates of my planet
the other option for me would be to use some maths formula that calculates a 2D circle for me.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我认为您正在寻找的是
Matrix.Translation
。这将为您提供在Vector3
中调用的矩阵的 x、y、z 坐标。因此,要获得新位置,您应该
在计算后使用。
I think what you're looking for is
Matrix.Translation
. This gives you the x, y, z co-odinates of the matrix that it's called on in aVector3
.So, to get the new position, you should use
after your calculations.