gpt4 book ai didi

c# - XNA:向矢量添加力

转载 作者:太空宇宙 更新时间:2023-11-03 22:19:50 26 4
gpt4 key购买 nike

我在二维平面上确实有 2 个点。已经有一个向量确定了它将向哪个方向移动。

现在我想向这个现有向量添加一个向量。所以他朝另一点的方向加速。

更清楚一点,大约有 2 颗小行星在太空中飞行(仅 2d),引力会使它们彼此靠得更近一些。

到目前为止我所做的是这样的:

c = body.position - body2.position;
dist = c.Length();

acc = (body.masse * body2.masse) / (dist * dist);

xDist = body2.position.X - body.position.X;
yDist = body2.position.Y - body.position.Y;

direction = MathHelper.ToDegrees((float)(Math.Atan2((double)yDist, (double)xDist)));

body.velocity.Y = body.velocity.Y + (float)(Math.Sin(direction) * acc);
body.velocity.X = body.velocity.X + (float)(Math.Cos(direction) * acc);

瞬间计算出的方向完全不对。我当然犯了一个愚蠢的错误,但我不知道。

最佳答案

您需要将以弧度为单位的方向角传递给 Math.sin 和 Math.Cos(而不是像您在示例代码中那样以度为单位)。

另见: http://msdn.microsoft.com/en-us/library/system.math.sin.aspx

The angle, a, must be in radians. Multiply by Math.PI/180 to convert degrees to radians.

关于c# - XNA:向矢量添加力,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3564310/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com