我想创建一个简单的点数组,以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)
];
我正在寻找创建这个数组的最有效方法(理想情况下,坐标本身是通过某种方程生成的)。最好的方法是什么?我想要做的就是在舞台上创建一个相对于剪辑当前坐标的坐标,根据剪辑移动,这样如果剪辑的移动距离为50px,剪辑的深度为0,它会在coordArray [0]位置移动50px,或在x方向移动0 * 50,在y方向移动-50px(0,-1)。
答案 0 :(得分:3)
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
度上移动var angle:int = 36
px。
radian:Number = angle * Math.PI / 180;
clip.x += Math.cos(radian) * speed;
clip.y += Math.sin(radian) * speed;