![]() |
1
1
在您的代码中,您通过已经使用的x和y位置的数组来测试可能的冲突,但您从不向这些数组添加新的位置。您还可以分别检查x和y坐标,这意味着您实际上是在测试边界框的碰撞。 当圆心之间的距离小于半径之和时,两个圆会发生碰撞,因此可以使用:
这对于50个球来说是相当快的,但如果你有更多的球,速度会很慢。在这种情况下,一些空间数据结构可以加速碰撞搜索。 你还必须提防找不到好地方的情况。上面的代码在20次尝试后放弃,并将球移到可见画布之外。您可以通过按半径对球进行排序,并首先将大球平分,来提高放置球的机会。
最后,您在随机颜色中添加了过多的一个十六进制数字。(即
|
![]() |
feasega · 聚合物模拟-2个节点之间的最短路线,适用于所有节点 5 月前 |
![]() |
Alisa Petrova · 在有向图中更改一对顶点以创建循环 5 月前 |
![]() |
b39b332d · 使用C++标准库实现高效间隔存储 9 月前 |
![]() |
ABGR · 二叉树的直径——当最长路径不通过根时的失败案例 9 月前 |
![]() |
EpicAshman · 数独棋盘程序中同一列和同一行出现两次的数字 10 月前 |