【发布时间】:2010-08-25 09:07:37
【问题描述】:
我确实在 2d 平面上有 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);
在计算的方向完全关闭的那一刻。当然我只是犯了一个愚蠢的错误,但我不知道。
【问题讨论】: