我有一条射线,我需要找到它击中的最近的线段。如果我首先对线段进行排序,我认为可以在 O(log n) 时间内完成此操作,但我不记得如何对它们进行排序......我认为某种树会工作得最好,但我该如何排序他们的起点和终点?如果可能的话,我还想快速插入这个数据结构。
一条射线与一条线段有很多代码,但我需要一条射线与许多线段的代码……我不知道谷歌的术语是什么。
适当文章的链接很好,C++ 代码更好。谢谢!:)
PS:线段实际上是非自相交多边形的边缘,按逆时针顺序排序......但我认为以不同的方式对它们进行排序可能会有一些优势?
这都是二维的。
再三考虑,我不完全确定这是可能的。某种空间分区可能会有所帮助,但除此之外,我想不出任何方法来对线条进行排序,以便将它们与任意光线进行比较。