我有四个要点

P1A (10,9)
P1B (10,10)

P2A (11,10)
P2B (11,9)


这表明

LineA(from P1A ~ P2A)LineB(from P1B ~ P2B)

现在,我想得到两条线的角度。

在这种情况下,角度必须为90度。

如何通过编程获取角度?

我很高兴能在php或javascript上找到想法

我认为公式必须与向量a,b相似。

cosΘ = a1 x b1 + a2 x b2 / MathSqrt(a1 x a1 + a2 x a2) x MathSqrt(b1 x b1 + b2 x b2)

但是,如何在此公式中采用P1A,P1B,P2A,P2B?

最佳答案

在javascript中,您可以使用Math.atan2()


  Math.atan2()方法返回-π到π之间的数值
  表示(x,y)点的角度theta。


let P1A = {
    x: 10,
    y: 9
};

let P1B = {
    x: 11,
    y: 10
};

// angle in radians
let angleRadians = Math.atan2(P1B.y - P1A.y, P1B.x - P1A.x);

// angle in degrees
let angleDeg = Math.atan2(P1B.y - P1A.y, P1B.x - P1A.x) * 180 / Math.PI;

10-05 20:12