Flash 雪球中随机雪的数学方程

Flash 雪球中随机雪的数学方程,flash,actionscript-3,math,trigonometry,geometry,Flash,Actionscript 3,Math,Trigonometry,Geometry,我一直在尝试这个方法,但还没有找到一个合适的解决方案。希望你们中的一个数学专家能给我指出正确的方向。我正在ActionScript3中构建一个雪球,我需要拿出一组方程式来控制两层雪花——一层是随机的,另一层是交互的,用户可以点击它们。 对于随机雪,我需要让它在地球底部创建一定数量的随机x/y位置,这是一个半径约为300的圆。然后,当抖动动作发生时,它们应该随机地浮向顶部,然后再次回落到圆圈底部的随机位置 对于交互式雪花,我需要它随机布局,但我不希望雪花重叠,以便更容易与它们交互。这里有一个解决方

我一直在尝试这个方法,但还没有找到一个合适的解决方案。希望你们中的一个数学专家能给我指出正确的方向。我正在ActionScript3中构建一个雪球,我需要拿出一组方程式来控制两层雪花——一层是随机的,另一层是交互的,用户可以点击它们。 对于随机雪,我需要让它在地球底部创建一定数量的随机x/y位置,这是一个半径约为300的圆。然后,当抖动动作发生时,它们应该随机地浮向顶部,然后再次回落到圆圈底部的随机位置


对于交互式雪花,我需要它随机布局,但我不希望雪花重叠,以便更容易与它们交互。

这里有一个解决方案,但不是特别劈开的解决方案

根据薄片的形状,可以计算一个薄片与另一个薄片之间的距离,而不重叠(可能需要特定的旋转)。让中心之间的距离为d。以一定的分辨率为显示器构建二维阵列,使其完全包含圆

数组可以有0或1个值。0表示可以在那里放置新雪花,1表示不能。将圆圈外的所有内容标记为1。现在为薄片选择一个随机中心。当你把它放在那里,用1标出它周围d半径内的所有点。生成另一个随机点。如果为1,则继续生成另一个随机点,直到找到0为止。一旦你找到它,把新的雪花放在那里,用半径d标记周围的一切。有时,当薄片太近时,您必须适当地旋转它们,以便它们不会重叠

一旦你到达终点,你可能需要越来越长的时间才能找到一个空位。此时,您可能需要扫描阵列,列出一个空点列表,然后从中随机选取点