마우스 이동 각도를도 단위로 계산하고 싶습니다. 마우스를 직선으로 움직일 필요가 없다는 것을 알고 있지만 시작점과 끝점을 기준으로 마우스를 계산하여 멋진 직각을 만들려고했습니다.마우스 이동 각도 계산 각도
log("ANGLE: " + getAngle(x1, y1, x2, y2));
이상한 결과를주고있다 :
ANGLE: 0.24035975832980774
mouse has stopped
ANGLE: 1.334887709726425
mouse has stopped
ANGLE: 0.2722859857950508
mouse has stopped
ANGLE: 0.3715485780567732
mouse has stopped
코드 :
$("canvas").mousemove(function(e) {
getDirection(e);
if (!set) {
x1 = e.pageX, //set starting mouse x
y1 = e.pageY, //set starting mouse y
set = true;
}
clearTimeout(thread);
thread = setTimeout(callback.bind(this, e), 100);
});
function getAngle (x1, y1, x2, y2) {
var distY = Math.abs(y2-y1); //opposite
var distX = Math.abs(x2-x1); //adjacent
var dist = Math.sqrt((distY*distY)+(distX*distX)); //hypotenuse,
//don't know if there is a built in JS function to do the square of a number
var val = distY/dist;
var aSine = Math.asin(val);
return aSine; //return angle in degrees
}
function callback(e) {
x2 = e.pageX; //new X
y2 = e.pageY; //new Y
log("ANGLE: " + getAngle(x1, y1, x2, y2));
log("mouse has stopped");
set = false;
}
아 죄송합니다. 180/PI로 라디안을 곱하면 왜 각도가 부여되는지 말해 줄 수 있습니까? – Growler
이것은 라디안으로 학위를 정의한 것입니다. http://en.wikipedia.org/wiki/Radian#Conversion_between_radians_and_degrees – gcochard
롤 나는 그것을보아야했습니다. 마지막으로, 저는 원을 중심으로 움직이는 것을 보았습니다. 항상 '90'이라는 용어로 각도를 나타냅니다. 예 : 원점에서 오른쪽 위 사분면으로 이동하면 0 ~ 90도 범위를 나타낼 수 있습니다. 원점에서 오른쪽 아래 사분면으로 이동하면 도수가 270-360에이를 것으로 예상됩니다. 이 문제를 어떻게 해결할 수 있습니까? – Growler