Geometry 按直线分割二维四边形

Geometry 按直线分割二维四边形,geometry,2d,polygon,divide,Geometry,2d,Polygon,Divide,我发现很多实现都是通过一条给定的线来分割一个多边形,但我只需要分割一个四边形(带有4个顶点的矩形) 是否有针对此任务优化的算法简单性比性能更重要 我缩小了4种交叉口的范围: 相邻 线路进入一侧并通过相邻一侧离开。 这将生成一个具有3个点的多边形和一个具有5个点的多边形 对立面 线路从一侧进入,从另一侧离开。 这将生成一个具有4个点的多边形和一个具有4个点的多边形 对角的 线路从一个角进入,从另一个角离开。 这将生成一个具有3个点的多边形和一个具有3个点的多边形 对角邻接 线路进入一个角落并

我发现很多实现都是通过一条给定的线来分割一个多边形,但我只需要分割一个四边形(带有4个顶点的矩形)

是否有针对此任务优化的算法简单性比性能更重要

我缩小了4种交叉口的范围:

相邻 线路进入一侧并通过相邻一侧离开。
这将生成一个具有3个点的多边形和一个具有5个点的多边形

对立面 线路从一侧进入,从另一侧离开。
这将生成一个具有4个点的多边形和一个具有4个点的多边形

对角的 线路从一个角进入,从另一个角离开。
这将生成一个具有3个点的多边形和一个具有3个点的多边形

对角邻接 线路进入一个角落并通过相邻一侧离开。
这将生成一个具有3个点的多边形和一个具有4个点的多边形

但是到目前为止,我还不能想出一个好的简单算法

谢谢

通过矩形窗口可以剪裁线条


我已经出于我的目的使用了(检查“外部链接”部分以获得有效的实施)

您有什么不满意的地方吗?您好,正如我前面提到的,我阅读的算法是为了处理广泛的案例场景而创建的。我只是想也许有一些简单的算法就是为这种情况设计的。也许没有,我将不得不坚持使用其他算法。我不认为你能得到比一般解决方案更有效的结果,因为你最终只会找到交点并生成2个顶点循环,边的数量无关紧要,明确地不专门处理边长-4可能会产生一个更简单的算法。