Чтобы опираться на то, что предлагает Лэнни, могут быть случаи, когда вы не хотите вращать весь контейнер. Альтернативой может быть использование тригонометрических функций и возрастающий угол для вычисления положения x/y перекрестия. Вы можете найти x/y, используя угол (преобразованный в радианы) и Math.cos(angleInRadians)
для x и Math.sin(angleInRadians)
для y, умноженный на радиус орбиты.
См. Это working example для справки.
Вот полный фрагмент.
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();
});
Не можете ли вы просто переместить перекрестие по траектории круга с помощью параметрического уравнения круга? – ampawd
@ampawd благодарит за это предложение, что параметрическое уравнение было именно тем, что мне нужно. Однако, когда я начинаю вращение с углом 1 градуса в уравнении, моя точка сначала перемещается в точку прямо справа от начала, вокруг которой она вращается. Однако, чтобы переместить точку из произвольной начальной точки, я правильно понял, что сначала мне нужно определить угол, образованный началом, который указывает вправо, и моя произвольная точка? Будет ли закон косинусов быть способом этого? Я могу представить иллюстрацию моего вопроса, если это не достаточно ясное объяснение. – flemingslone
Если вы знаете координаты перекрестия, просто переместите его по траектории круга, используя следующую формулу: 'x = distance * Math.cos (angle) + cricle.center.x, y = distance * Math.sin (angle) + circle.center. y', где «расстояние» - это расстояние между перекрестием и кругом – ampawd