一个(可能是无界的)凸多边形与半平面的交集

4
这是对如何测试一条线与凸多边形是否相交?的跟进问题。假设我能够测试一条线是否与凸多边形相交(我仍然不确定最好的方法是什么,这个问题与我的困难有关)。我想做的是:如果我发现该线与多边形相交,则要维护创建的左侧或右侧多边形。我不确定如何维护多边形对象,以便轻松计算上述内容。
总之,给定一个多边形对象和一条线,如何找到由线半平面与多边形相交创建的新多边形?CGAL或任何其他库是否具有可用于此的即用函数?如果必须从头开始编写代码,应如何维护多边形对象?

我不明白你是如何在这里创建一个新的多面体的。你的意思是说你正在将一个多面体与一个平面相交,而不是一条直线吗?一条单独的直线无法将一个多面体分成两个部分。 - Mark Dickinson
但是一条线如何创建一个半空间呢?你是在三维空间中工作,对吧? - Mark Dickinson
不,我正在进行2D工作。半空间指的是半平面。抱歉,我不知道CG中使用的标准术语。 - elexhobby
啊,那你可能想要重新表达你的问题,讨论多边形而不是多面体。 - Mark Dickinson
也许吧。但是我之前问题的一个回答者说,多边形指的是有界闭合多边形。无界多边形被称为多面体/多胞体。而我想考虑无界情况。 - elexhobby
显示剩余2条评论
1个回答

0

我认为使用CGAL的一个解决方案可能是使用 Nef多边形上的2D布尔运算。但对于凸多边形来说,这可能有些过度。让我困扰的是你提到可能想要使用无界凸多边形。如果没有Nef多边形,我不知道是否可以在CGAL中表示它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接