gpt4 book ai didi

c++ - CGAL:延伸线段直到多边形边界

转载 作者:行者123 更新时间:2023-11-30 04:22:48 39 4
gpt4 key购买 nike

如果我在多边形的 2 个顶点之间有一个线段,是否可以使用 CGAL 扩展该线段直到它到达多边形边界? (如果至少一个顶点是反射顶点,就会发生这种情况)。

最佳答案

您可以通过mySegment.supporting_line()获取该段的支持线并检查这条线与多边形边界相交的位置。然后,您可以根据找到的交点创建一个新的 Segment。

设 p1 和 p2 为线段的顶点。如果我没看错,您可能希望按坐标对交点进行排序,并创建一个从小于 p1 和 p2 的第一个交点到大于 p1 和 p2 的第一个交点的段。 (注意,这里要处理几个特殊情况。)

要获得交点,您可以遍历多边形的线段,并通过 CGAL::intersection 将每个线段与提到的支撑线相交.

一个更复杂的方法是创建一个 Arrangement包含您的多边形,附上 Observer到它,然后将提到的支持行添加到安排中。然后,您将从对 obs.before_split_face()obs.before_split_face() 的自动调用中获取所需信息。

关于c++ - CGAL:延伸线段直到多边形边界,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13596684/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com