2017-06-21 51 views
1

我想使用Clipper,一個開放源代碼多邊形剪裁庫來剪裁一個封閉多邊形的打開多邊形。Clipper:當剪切打開多邊形時崩潰

我正在使用Pyclipper的python包裝。我的代碼如下:

import pyclipper 

subj = [[-10, 5], [20, 5]] 

clip = [[0, 0], [0, 10], [10, 10], [10, 0]] 

pc = pyclipper.Pyclipper() 

pc.AddPath(clip, pyclipper.PT_CLIP, True) 
pc.AddPath(subj, pyclipper.PT_SUBJECT, False) 

solution = pc.Execute(pyclipper.CT_INTERSECTION, pyclipper.PFT_EVENODD, pyclipper.PFT_EVENODD) 

print(solution) 

它似乎運行直到執行功能,然後它只是退出沒有錯誤信息。我究竟做錯了什麼?

回答

0

試着改變你的名單列表元組,而最重要的是,沒有一個類型的錯誤,使用Pyclipper::Execute2

import pyclipper 

subj = [(-10, 5), (20, 5)] 

clip = [(0, 0), (0, 10), (10, 10), (10, 0)] 

pc = pyclipper.Pyclipper() 

pc.AddPath(clip, pyclipper.PT_CLIP, True) 
pc.AddPath(subj, pyclipper.PT_SUBJECT, False) 

solution = pc.Execute2(pyclipper.CT_INTERSECTION, pyclipper.PFT_NONZERO, pyclipper.PFT_NONZERO) 


print([i.Contour for i in solution.Childs]) 

[[[10,5],[0, 5]]]

最後一行是等價的,在你的情況下,於:

solution = pc.Execute2(pyclipper.CT_INTERSECTION, pyclipper.PFT_EVENODD, pyclipper.PFT_EVENODD) 
+0

不,仍然無法正常工作... :-( –

+0

@AdamCavender我做了一個編輯 –

+0

AddPaths是一次添加多條路徑,我只添加一條路徑......我無論如何都測試了它,並得到一個錯誤。 –