Ich möchte den Winkel der Mausbewegung in Grad berechnen. Während ich weiß, dass Sie die Maus nicht in einer geraden Linie bewegen müssen, habe ich nur versucht, sie basierend auf Start- und Endpunkten zu berechnen, um einen schönen rechten Winkel zu erzeugen.Berechnen des Winkels in Grad der Mausbewegung
log("ANGLE: " + getAngle(x1, y1, x2, y2));
schenkt seltsame Ergebnisse:
ANGLE: 0.24035975832980774
mouse has stopped
ANGLE: 1.334887709726425
mouse has stopped
ANGLE: 0.2722859857950508
mouse has stopped
ANGLE: 0.3715485780567732
mouse has stopped
Code:
$("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. Können Sie mir sagen, warum Multiplikation Radiant um 180/PI gibt Grad? – Growler
Das ist die Definition eines Grades in Radiant. http://en.wikipedia.org/wiki/Radian#Conversion_between_radians_and_degrees – gcochard
Lol Ich hätte das nachsehen sollen. Das letzte, was mir aufgefallen ist, wenn ich mich im Kreis bewege, gibt es immer Abstufungen in Form einer '90'. Beispiel: Wenn Sie vom Ursprung zum oberen rechten Quadranten gehen, können Sie einen Bereich von 0 bis 90 Grad eingeben. Wenn ich vom Ursprung zum unteren rechten Quadranten gehe, würde ich einen Grad von 270-360 erwarten. Wie behebe ich das? – Growler