Raphael.js如何找到最终点击坐标和鼠标当前位置之间的度数?

时间:2013-05-10 22:49:30

标签: javascript raphael

当我点击paper时,我会将位置存储在lastXlastY值中:

lastX = e.screenX;
lastY = e.screenY;

在鼠标移动时,我更新currentXcurrentY值:

currentX = e.screenX;
currentY = e.screenY;

我可以确定这两个坐标之间的程度是什么?我认为x线是0度。但这里停止了我的科学。

2 个答案:

答案 0 :(得分:0)

在其他一些谷歌搜索之后:

var radian = Math.atan((currentY-lastY)/(currentX-lastX));
var degree = radian * (180/Math.PI);

答案 1 :(得分:0)

假设原点是点(lastX, lastY),零度是正x轴, 点(currentX, currentY)的程度如下:

function degreesToPoint(origin, endP){
    if(typeof origin != typeof [] or typeof endP != typeof [])
        return false;
    else {
        var slope = {
            x: origin[0] - endP[0],
            y: origin[1] - endP[1]
        };
        var degrees = Math.atan(slope.y / slope.x) * 180 / Math.PI;
        if(slope.x < 0 && slope.y >= 0){
            degrees += 180;
        } else if (slope.x < 0 && slope.y < 0) {
            degrees -= 180;
        }
        return degrees;
    }
}