3
var circles:Array = new Array();


for(var i:int = 0; i < 8; i++)
{

    var ball:Ball = new Ball();
        ball.x = ???
        ball.y = ???
        circles.push(ball);
}

将球定位在某个点周围的最佳方法是什么,可以说彼此相距 5-10,有什么公式吗?

4

2 回答 2

7
for(var i:int = 0; i < 8; i++)
{
    var ball:Ball = new Ball();

    // Point has a useful static function for this, it takes two parameters
    // First, length, in other words how far from the center we want to be
    // Second, it wants the angle in radians, a complete circle is 2 * Math.PI
    // So, we're multiplying that with (i / 8) to place them equally far apart
    var pos:Point = Point.polar(50, (i / 8) * Math.PI * 2);

    // Finally, set the position of the ball
    ball.x = pos.x;
    ball.y = pos.y;

    circles.push(ball);
}
于 2012-12-08T18:06:34.700 回答
1

我不知道 actionscript3,所以这个确切的代码不起作用,但它应该给你一个基本的想法

for(int c = 0; c < 8; c++)
{
   Ball ball;
   ball.x = point.x;
   ball.y = point.y;
   ball.x += sin(toRadians((c/8) * 360));
   ball.y += cos(toRadians((c/8) * 360));
   circles.add(ball);
}

如果您不知道“sin”和“cos”的作用,或者“toRadians”的含义,只需谷歌一下:“Sine Cosine Trigonometry”。你会发现很多教程。

在这里,我找到了这个。它将教你什么是“sin”、“cos”和“radians”。 http://www.khanacademy.org/math/trigonometry

显然你可以坚持grapefrukt的回答,它有效,但如果你想知道“Point.polar”的幕后真正发生了什么,请查看这些视频。

于 2012-12-08T18:15:40.040 回答