裁剪器:剪切打开的多边形时崩溃

2024-05-16 16:02:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试使用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)

它似乎一直运行到Execute函数,然后就退出了,没有错误消息。我做错什么了?在


Tags: 代码importptexecuteclip开源多边形solution
1条回答
网友
1楼 · 发布于 2024-05-16 16:02:09

尝试更改元组列表,最重要的是,要避免类型错误,请使用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]]]

最后一行在您的案例中相当于:

^{pr2}$

相关问题 更多 >