我在随机位置有多个圆圈(作为连接顶点的列表)。
当圆圈相交时,会创建封闭区域(就像在维恩图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)