通過兩坐標點計算角度


public static getAngle(pointA, pointB): number {//通過兩點獲得角度
let mx = pointA.x;
let my = pointA.y;
let px = pointB.x;
let py = pointB.y;
var x = Math.abs(px - mx);
var y = Math.abs(py - my);
var z = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2));
var cos = y / z;
var angle = Math.acos(cos);//用反三角函數求弧度
let pi = Math.PI;
if (mx > px && my > py) {//目標點在第四象限
angle = pi - angle;
}

if (mx == px && my > py) {//目標點在y軸負方向上
angle = pi;
}

if (mx > px && my == py) {//目標點在x軸正方向上
angle = pi / 2;
}

if (mx < px && my > py) {//目標點在第三象限
angle = pi + angle;
}

if (mx < px && my == py) {//目標點在x軸負方向
angle = pi * 3 / 2;
}

if (mx < px && my < py) {//目標點在第二象限
angle = 2 * pi - angle;
}
angle = angle + pi / 2;
if (angle > 2 * pi) angle = angle - 2 * pi;
if (isNaN(angle)) return 0;
return angle;
}

 

public static toAngle(a: number): number {
  return a / MathConstant.PI_180;
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM