【发布时间】:2014-01-11 21:23:18
【问题描述】:
我是 CGAL 的初学者,我对线段的交叉点(也可能是弧线)有疑问。
鉴于我有两个线段列表,其中每个列表代表一个形状,如果我将这两种形式相交,有没有办法得到交点和你的线段?
这里是一个例子:http://imagizer.imageshack.us/v2/800x600q90/13/ydtj.png 我想要深绿色/蓝色段和浅绿色/蓝色的交点。图片显示了两个十字路口,但对我而言,仅第一个十字路口就足够了。
我想遍历列表,但我认为这可能是一种幼稚的方法。有更准确、更快捷的方法吗?
【问题讨论】:
-
有趣的是,一条曲线可以代表一条线段。但我希望两条线段(曲线)相交,而不是不相交的子曲线。在这张图片中,我有 compute_subcurve imagizer.imageshack.us/v2/800x600q90/163/6nxn.png 的结果,我想要完整的曲线 AB、CD 或 EF、GH。我该如何解决这个问题?安排?并感谢您的帮助。
-
我做了一些研究并使用安排做了一个例子。 pastebin.com/SmueNLQe pastebin.com/Dx7K7ps5 pastebin.com/zU6fG0AV 这是我在 CGAL 文档中看到的图形表示 imagizer.imageshack.us/v2/800x600q90/843/fkj5.png merge_edge 可以用来连接两条边。我意识到,如果我使用交叉点并在相邻边之间迭代,就可以创建边。但是,如果一个排列的一个片段在不同的片段排列中多次相交怎么办?我怎样才能加入所有这些子曲线?
-
只是为了确保我理解。使用 2D 排列包可以轻松获得顶点,对吧?你所指的segments是那些包含交点的那些?
-
是的,我很容易明白安排的重点。我想要包含(不是内部不相交的段)交点的原始段。