Algorithm 在画布上展开对象以最小化重叠

Algorithm 在画布上展开对象以最小化重叠,algorithm,optimization,geometry,computational-geometry,Algorithm,Optimization,Geometry,Computational Geometry,我目前正在研究如何将大量的n对象(每个对象都有一个位置和半径大小)分布到100x100平方的画布上 我最初的想法是为边界内的每个对象随机分配一个2D位置。但是,这可能会导致多个对象非常接近,从而导致巨大的重叠 但是,如果可能的话,我希望保持较小的重叠(当然,随着n的增加,会有一个点,即并非所有对象都能在不重叠的情况下适合画布 所以现在我在寻找某种迭代过程,它可以将非常靠近的物体移动到更远的地方,但要确保它不会落在另一个物体的位置上 有没有解决这些问题的现有算法?我该如何开始解决这个问题?你可以使

我目前正在研究如何将大量的
n
对象(每个对象都有一个位置和半径大小)分布到100x100平方的画布上

我最初的想法是为边界内的每个对象随机分配一个2D位置。但是,这可能会导致多个对象非常接近,从而导致巨大的重叠

但是,如果可能的话,我希望保持较小的重叠(当然,随着
n
的增加,会有一个点,即并非所有对象都能在不重叠的情况下适合画布

所以现在我在寻找某种迭代过程,它可以将非常靠近的物体移动到更远的地方,但要确保它不会落在另一个物体的位置上


有没有解决这些问题的现有算法?我该如何开始解决这个问题?

你可以使用类似的方法,使对象都具有相同的半径?对象的形状是什么?基本上,它们都是方形图像,但在透明的背景上有不同的对象。如果对象重叠一点也可以,所以我限制它们把它交给有“碰撞半径”的人。此外,每个对象的半径可能不同。您可以使用类似的方法来确定对象是否都具有相同的半径?对象的形状是什么?基本上,它们都是方形图像,但在透明背景上有不同的对象。如果对象有一点重叠,则可以,因此我将其限制为具有相同半径的对象“碰撞半径”。此外,每个对象的半径可能不同