Voglio calcolare l'angolo del movimento del mouse in gradi. Mentre so che non è necessario spostare il mouse in linea retta, stavo solo cercando di calcolarlo in base ai punti di partenza e di arrivo per creare un angolo retto.Calcolo dell'angolo in gradi del movimento del mouse
log("ANGLE: " + getAngle(x1, y1, x2, y2));
sta dando risultati strani:
ANGLE: 0.24035975832980774
mouse has stopped
ANGLE: 1.334887709726425
mouse has stopped
ANGLE: 0.2722859857950508
mouse has stopped
ANGLE: 0.3715485780567732
mouse has stopped
Codice:
$("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;
}
Ah oops. Puoi dirmi perché moltiplicare i radianti per 180/PI dà gradi? – Growler
Questa è la definizione di una laurea in termini di radianti. http://en.wikipedia.org/wiki/Radian#Conversion_between_radians_and_degrees – gcochard
Lol Avrei dovuto dare un'occhiata. L'ultima cosa, ho notato mentre mi muovo attorno al cerchio, dà sempre dei gradi in termini di un '90'. Esempio: il passaggio dall'origine al quadrante in alto a destra potrebbe fornire un intervallo compreso tra 0 e 90 gradi. Spostandomi dall'origine al quadrante in basso a destra, mi aspetterei gradi che vanno da 270-360. Come posso risolvere questo? – Growler