如何找到画布上两个向量之间的角度?

Pra*_*aud 1 javascript math geometry canvas

我需要找到画布上两个向量之间的角度。我在下面附上了一些例子: 在此输入图像描述

在此输入图像描述

你能告诉我一些公式吗?我的学校数学有问题:)

obs*_*ure 5

基本上,您需要将连接两个向量的点作为原点,其中 x=0 和 y=0。

看看这张照片:

现在我们可以说点ABC的 x 和 y 值为:

  • A = 0 | 0
  • B = 0|-6
  • C=5|2

要计算两者的反正切,我们可以利用Math.atan2()函数。请注意,atan2 的第一个参数必须是 y 值。

var firstAngle = Math.atan2(-6, 0);
var secondAngle = Math.atan2(2, 5);
Run Code Online (Sandbox Code Playgroud)

并通过减法得到它们的差

var angle = secondAngle - firstAngle;
Run Code Online (Sandbox Code Playgroud)

这将返回一个弧度值,您可以将其转换为度数,如下所示:

angle = angle * 180 / Math.PI;
Run Code Online (Sandbox Code Playgroud)