如何计算角度,给定速度的x和y分量?

6

对于在笛卡尔坐标系中运动的粒子(忽略z轴),如何计算给定速度的x和y分量时的行进角度?

在有人说这与编程无关之前,我正在进行编程,但是我不懂向量数学。

例如,假设速度的x和y值分别为5.0和-1.5,我该如何计算角度?


这绝对是相关主题。即使你的工作中不使用向量,基本的向量数学对编程仍然非常重要。话虽如此,这个问题已经有几个重复的 问答了。 - BlueRaja - Danny Pflughoeft
6个回答

6
在Javascript中,我会使用Math.atan2(1.5, 5.0)。要将其转换为角度,请使用Math.atan2(1.5, 5.0)/(Math.PI/180)。在维基百科上:http://en.wikipedia.org/wiki/Atan2

1
我进行了负投票,因为您没有解释为什么应该使用atan2来计算给定速度的x和y分量之间的角度。 atan2与速度之间有什么关系?如果您在答案中添加这些细节,我将删除我的负投票。此外,问题没有提及Javascript。 - nbro

4
您需要使用 atan2 函数:

对于任意不为零的实数参数 xyatan2(y, x) 是平面直角坐标系中从正 x 轴到点 (x, y) 所形成的与 x 轴正半轴之间的夹角(弧度制)。


3

从x轴开始的弧度角度为:

arctan(vy / vx);  // vx > 0

您还需要处理 vx < 0 的情况。

如果您想要相对真北的方位角,则可能需要:

double bearing = 90 - arctan(vy / vx) * 360 / 2 / M_PI;

1

斜率的反正切将会给你想要的结果。


1

角度是y / x的反正切。许多语言在数学库中都有一个四象限反正切函数,它接受x和y参数。


1

在处理角度时需要小心。反正切函数 atan(y / x) 可以给出相对于正 x 轴的角度,但请确保这是你所需要的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接