我在隨機位置有多個圓(作爲連接頂點的列表)。創建封閉區域多邊形的算法
當圓相交,封閉
如何生成所有這些領域的獨立多邊形(維恩圖http://en.wikipedia.org/wiki/Venn_diagram中一樣)創建領域?我們的目標是能夠色彩每一個地區有一個單獨的多邊形就像這個例子:
是用迭代布爾相交操作可能的通用解決方案?
編輯
下面的簡單文檔片斷是[NodeBox](http://nodebox.net/code/index.php/Home)
腳本,吸引相交橢圓。
oval(x0,y0,w,h)
創建一個橢圓。
根據doc,像p[19].difference(p[17])
這樣的路徑上的布爾運算會給出一個「平坦」結果(「由許多直線段組成」)。
可以添加或更改路徑的座標。
size(500, 500)
p = []
s = 54
nofill()
stroke(0)
for k in xrange(10):
w = 10+k*s/2
w2 = 10+k*s
h = 10+k*s
h2= 10+k*s
p.append(oval(WIDTH/2 - w/2, HEIGHT/2 - h/2, w, h, draw=False))
p.append(oval(WIDTH/2 - w2/2, HEIGHT/2 - h2/2, w2, h2, draw=False))
cp = p[19].difference(p[17]).intersect(p[18], flatness = 0.3)
for pi in p:
drawpath(pi)
fill(color(1,0,0))
drawpath(cp)
你有什麼信息/數據結構作爲輸入?向我們展示你迄今爲止所做的工作。 – RBarryYoung
我添加了一些NodeBox Python代碼,該庫允許在路徑上進行布爾操作。我的代表太低而無法包含圖片 – synchro
在問題中添加圖片鏈接,我們可以爲您排列。 – RBarryYoung