js获取两点之间的角度

1,213 阅读1分钟

//2017-11-01

获取两点角度

function getAngleByPoint(start,end){
    var x = Math.abs(end.x - start.x),
    y = Math.abs(end.y - start.y),
    z = Math.sqrt(Math.pow(x,2)+Math.pow(y,2));
    //无拖动
    if(x == 0 && y == 0){return 0;}
    var cos = y/z;
    var radina = Math.acos(cos);//用反三角函数求弧度
    var angle = Math.floor(180/(Math.PI/radina));//将弧度转换成角度
    //鼠标在第一象限
    if(start.x <= end.x && start.y > end.y){
        angle = Math.abs(90 - angle);
    }
    //鼠标在第二象限
    if(start.x > end.x && start.y >= end.y){
        angle += 90;
        
    }
    //鼠标在第三象限
    if(start.x >= end.x && start.y < end.y){
        angle = 270 - angle;
        
    }
    //鼠标在第四象限
    if(start.x < end.x && start.y <= end.y){
        angle += 270;
    }
    angle = 360 - angle;
    return angle == 360 ? 0 : angle;
};