雪球中的随机雪花数学公式

4
我一直在尝试解决这个问题,但还没有找到一个合适的解决方案。希望你们中的数学高手能指点我正确的方向。我正在使用ActionScript 3构建一个雪球,并需要设计一组方程来控制两个级别的雪花——一个级别是随机的,另一个级别是交互式的,用户可以单击它们。
对于随机的雪花,我需要在圆形的底部创建一定数量的随机x/y位置,圆形的半径约为300。然后当发生摇晃动作时,它们应该随机地浮动到顶部,然后再回到圆形底部的随机位置。
对于交互式雪花,我需要它们随机布局,但我不希望雪花重叠,这样更容易与它们交互。
1个回答

0

这是一个解决方案,虽然不是特别聪明的解决方案。

根据你的雪花形状,可以计算出一片雪花在不重叠的情况下可接近另一片雪花的距离(可能需要旋转)。让圆心之间的距离为d,在某个分辨率下为显示构建一个2D数组使其完全包含圆形。

该数组可以具有零或1值。 0表示可以放置新的雪花,1表示不能放置。将圆外的所有内容标记为1。现在选择雪花的随机中心点。将其放置在那里时,使用1标记其周围d半径范围内的所有点。生成另一个随机点。如果它是1,则继续生成另一个随机点,直到找到0。一旦找到它,就将新的雪花放置在那里,并用半径d标记周围的所有内容。有时当雪花太靠近时,您必须适当旋转它们,以使它们不重叠。

一旦接近尾声,寻找空点可能会越来越费时。此时,您可能需要扫描数组,列出空点列表,然后只需从中随机选择点。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接