布局圆形TreeMap的算法是什么?

给定一个标准的嵌套圆形树图,你如何计算圆圈的放置位置?     
已邀请:
你的主要问题可以这样描述:“
Given a set of circles of varying radius, how does one place them within a larger circle, so that none of them overlap
”。 这是一个很难的问题,但这里有一个强力解决方案可以帮助您入门: 按大小对圆圈进行排序 将最大的圆圈放在边界圆的内边缘上 对于其余的圈子(r1),请执行以下操作: 迭代所有已经放置的圆圈(r2,r3)(包括外圈) 找到距离r1 + r2到第一个圆圈并且r1 + r3到第二个圆圈的(一个或两个)点。 尝试将新圈子放在这里。 以上使用的观察结果表明,在一个完美的包装中,每个圆圈必须与至少另外两个圆圈相邻。您可以使用该算法提供完整搜索,或者您可以随机迭代并贪婪地选择第一个可用点。     

要回复问题请先登录注册