Um darauf aufzubauen, was Lanny vorschlägt, kann es Fälle geben, in denen Sie den gesamten Container nicht drehen möchten. Eine Alternative wäre, trigonometrische Funktionen und einen Inkrementierungswinkel zu verwenden, um die x/y-Position des Fadenkreuzes zu berechnen. Sie können x/y mit einem Winkel (in Radianten) und Math.cos(angleInRadians)
für x und Math.sin(angleInRadians)
für y, multiplizieren mit dem Radius der Umlaufbahn finden.
Siehe working example als Referenz.
Hier ist ein komplettes Snippet.
var stage = new createjs.Stage("stage");
var angle = 0;
var circle = new createjs.Shape();
circle.graphics.beginFill("#FF0000").drawEllipse(-25, -25, 50, 50).endFill();
circle.x = 100;
circle.y = 100;
var crosshair = new createjs.Shape();
crosshair.graphics.setStrokeStyle(2).beginStroke("#FF0000").moveTo(5, 0).lineTo(5, 10).moveTo(0, 5).lineTo(10, 5).endStroke();
stage.addChild(circle);
stage.addChild(crosshair);
createjs.Ticker.addEventListener("tick", function(){
angle++;
if(angle > 360)
angle = 1;
var rads = angle * Math.PI/180;
var x = 100 * Math.cos(rads);
var y = 100 * Math.sin(rads);
crosshair.x = x + 100;
crosshair.y = y + 100;
stage.update();
});
kann man nicht einfach mit der parametrischen Gleichung des Kreises das Fadenkreuz auf einer Kreisbahn bewegen? – ampawd
@ampawd danke für diesen Vorschlag, dass die Parametergleichung genau das war, was ich brauchte. Wenn ich jedoch die Drehung mit einem Winkel von 1 Grad in der Gleichung beginne, bewegt sich mein Punkt zuerst zu einem Punkt direkt rechts von dem Ursprung, um den er sich dreht. Um einen Punkt von einem willkürlichen Anfangspunkt zu bewegen, bin ich jedoch richtig im Denken, dass ich zuerst den Winkel bestimmen müsste, der durch den Ursprung, diesen Punkt nach rechts und meinen willkürlichen Punkt gebildet wird? Wäre das Gesetz des Kosinus der richtige Weg dafür? Ich kann eine Illustration meiner Frage liefern, wenn dies keine klare Erklärung ist. – flemingslone
Wenn Sie die Koordinaten des Fadenkreuzes kennen, bewegen Sie es einfach auf der Kreisbahn mit dieser Formel: 'x = Abstand * Math.cos (Winkel) + cricle.center.x, y = Abstand * Math.sin (Winkel) + circle.center. y 'wo' distance' ist ein Abstand zwischen Fadenkreuz und Kreis – ampawd