C# XNA 矩阵 - 找出矩阵乘法后的当前位置

发布于 2024-11-09 13:13:22 字数 600 浏览 0 评论 0原文

我正在为每个行星制作太阳系的 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

柏拉图鍀咏恒 2024-11-16 13:13:22

我认为您正在寻找的是Matrix.Translation。这将为您提供在 Vector3 中调用的矩阵的 x、y、z 坐标。

因此,要获得新位置,您应该

Vector3 newPosition = world.Translation;

在计算后使用。

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 a Vector3.

So, to get the new position, you should use

Vector3 newPosition = world.Translation;

after your calculations.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文