2009-02-06 82 views
0

在有限的空間中生成已知數量的非重疊固定半徑圓的最佳方式是什麼?如何在固定區域生成不重疊的圓圈?

+0

你應該更具體。這個圈子的分佈是一個問題嗎?是否應該覆蓋大部分表面?最簡單的方法是從x = r,y = r開始,對於半徑爲r的圓,並逐行放置它們,直到其中有足夠多的... – 2009-02-06 21:05:00

回答

3

用最少的剩餘空間做到這一點的方法是將圓心置於六邊形網格上,就像您製作金字塔金字塔時所獲得的圖案一樣。

2

你可以把屏幕分割爲一個網格,並繪製在每個「方」了一圈:)

0

這將取決於空間和其他限制的圈子裏,你沒有指定的自然形狀。例如,要在高度爲Y和長度爲X的矩形中生成N個非重疊圓,請將每個圓的直徑設爲X/10 * N或Y/10 * N中的較小者,並讓每個中心間隔一段距離均勻地分佈在劃分矩形的水平線上,跨越其長度的一半。

1

我不認爲你的問題是明確的。對世代有什麼限制?

下面是固定半徑的非重疊的圓隨機收集丟棄算法:

  1. 維持各界的列表
  2. 通過
    1. 生成候選生成隨機中心允許區域
    2. 測試列表中的每個現有圓以與候選人發生碰撞,並拒絕是否發現任何碰撞。如果全部通過,請將此候選人添加到您的列表中。
  3. 轉到#1,直到你滿意的數量產生

編輯:閱讀問題更加緊密,半徑指定...

相關問題