切割多边形算法

Cut polygon algorithm

我正在尝试解决一个问题,即必须将穿过 min/max Y 点的多边形对象拆分成多个部分,从而创建新的 rectangle/polygon 对象

这里红色标记的范围是我的x1,y1和x2,y2点,其中的所有内容都必须删除,绿色标记的字段是删除红色标记字段后必须创建的新对象,问题是我无法跟踪 "close" 新创建的矩形的位置。我需要有人提供一些执行此操作的算法或 link 我对现有算法。

一种算法可以轻松做到这一点:Sutherland-Hodgman

更好但更复杂且计算成本更高的算法是 Weiler-Atherton

到目前为止,我一直使用 Sutherland-Hodgman 的算法,从未遇到过任何问题。