我想创建一个简单的点数组,代表一组以 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)。
最佳答案
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);
}
例如,您有一个剪辑
,并希望它在var angle:int = 36
处移动var speed:int = 50
px学位。
radian:Number = angle * Math.PI / 180;
clip.x += Math.cos(radian) * speed;
clip.y += Math.sin(radian) * speed;
关于flash as3 - 创建坐标点数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8480270/