flash as3 - создать массив координатных точек - PullRequest
2 голосов
/ 13 декабря 2011

Я хочу создать простой массив точек, представляющий набор координат по часовой стрелке с шагом 45 градусов, так что массив будет (начиная с 12 часов):

var coordArray : Array = [
                  new Point(0,-1),
                  new Point(1,-1),
                  new Point(1,0),
                  new Point(1,1),
                  new Point(0,1),
                  new Point(-1,1),
                  new Point(-1,0),
                  new Point(-1,-1)
                  ];

I 'Я ищу наиболее эффективный способ создания этого массива (в идеале с самими координатами, сгенерированными с помощью какого-то уравнения).Какой лучший способ сделать это?Все, что я хочу сделать с ними, это создать координату на сцене относительно текущей координаты клипов, в которой нужно двигаться, основываясь на этих клипах, так, чтобы, если расстояние перемещения для клипов было 50px, а клип имел глубину 0,он будет перемещаться на 50 пикселей в координате координат [0] или на 0 * 50 в направлении х и на -50 пикселей в направлении у (0, -1).

1 Ответ

3 голосов
/ 13 декабря 2011
var points:Array = [];
var length:int = 50;
var angle:int = 45;
for(var i:int = 0; i < 360 / angle; i++)
{
  radian:Number = i * angle * Math.PI / 180;
  var p:Point = new Point(Math.cos(radian) * length, Math.sin(radian) * length);
  points.push(p);     
}

Например, у вас есть clip и вы хотите, чтобы он переместился var speed:int = 50 px на var angle:int = 36 градус.

radian:Number = angle * Math.PI / 180;
clip.x += Math.cos(radian) * speed;
clip.y += Math.sin(radian) * speed;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...