小编Tim*_*all的帖子

计算从高度不同的(0,0)以外的位置点击坐标(x,y)所需的角度

我试图计算发射射弹以达到特定坐标所需的角度.

我的射弹位于一个随机坐标,我的目标坐标位于静态坐标.

我最终在维基百科上运行以下等式来计算从(0,0)到(x,y)的坐标所需的角度:

我已经尝试了解这个和其他公式,并尝试了以下实现(我使用的是c#和XNA).

double y = source.Y - target.Y;
double x = Vector2.Distance(source, target);
double v = 1440; //velocity
double g = 25; //gravity
double sqrt = (v*v*v*v) - (g*(g*(x*x) + 2*y*(v*v)));
sqrt = Math.Sqrt(sqrt);
double angleInRadians = Math.Atan(((v*v) + sqrt)/(g*x));
Run Code Online (Sandbox Code Playgroud)

我还尝试了以下内容,这导致了相同的角度,其中v和g的值保持不变.

double targetX = target.X - source.X;
double targetY = -(target.Y - source.Y);
double r1 = Math.Sqrt((v*v*v*v) - g*(g*(target.X*target.X) + ((2*target.Y)*(v*v))));
double a1 = ((v*v) + r1)/(g*target.X);
angleInRadians = -Math.Atan(a1);
if (targetX < 0)
{
    angleInRadians -= 180/180*Math.PI; …
Run Code Online (Sandbox Code Playgroud)

c# xna physics trigonometry

5
推荐指数
1
解决办法
2743
查看次数

标签 统计

c# ×1

physics ×1

trigonometry ×1

xna ×1