Geometry 凸多边形(可能是无界的)与半平面的交点

Geometry 凸多边形(可能是无界的)与半平面的交点,geometry,polygon,computational-geometry,intersection,cgal,Geometry,Polygon,Computational Geometry,Intersection,Cgal,这是我们的后续问题 假设我能够测试一条直线是否与凸多边形相交(我仍然不确定最好的方法是什么,这个问题与我的难度有关)。我想做的是:如果我发现直线与多边形相交,我想保留创建的左侧或右侧多边形。我不确定如何维护多边形对象,以便上述内容易于计算 总之,给定一个多边形对象和一条直线,如何找到通过将直线创建的半平面与多边形相交而创建的新多边形?CGAL或任何其他库是否有用于此目的的现成函数?如果我必须从头开始编写代码,我应该如何维护多边形对象?我认为使用CGAL的一个解决方案是使用。但对于凸多边形来说,

这是我们的后续问题

假设我能够测试一条直线是否与凸多边形相交(我仍然不确定最好的方法是什么,这个问题与我的难度有关)。我想做的是:如果我发现直线与多边形相交,我想保留创建的左侧或右侧多边形。我不确定如何维护多边形对象,以便上述内容易于计算


总之,给定一个多边形对象和一条直线,如何找到通过将直线创建的半平面与多边形相交而创建的新多边形?CGAL或任何其他库是否有用于此目的的现成函数?如果我必须从头开始编写代码,我应该如何维护多边形对象?

我认为使用CGAL的一个解决方案是使用。但对于凸多边形来说,这可能是一种过分的做法。让我烦恼的是,你提到你可能想使用无界凸多边形。如果没有Nef多边形,我不知道是否可以在CGAL中表示它。

我不知道您如何在这里创建新的多面体。你的意思是,你要取一个多面体与一个平面的交点,而不是一条直线?一条线并不能把多面体分成两部分。@MarkDickinson:你说得对,我的错。我想取多面体与直线创建的左半空间或右半空间的交点。但是直线如何创建半空间呢?你在三维空间工作,对吗?不,我在二维空间工作。所谓半空间,我指的是半平面。对不起,我不知道CG中使用的标准术语。然后你可能想重新表述你的问题,讨论多边形而不是多面体。