实话实说,看你的程序级别。我是做十万级别的,
这个实际构建一般需要线段树(我一般直接上Rtree),kd-tree也可
将每个线段,拓宽为rectangle bounding box(MBR),添加到Rtree中去
然后鼠标点击中心半径搜到少量的MBR,再用点直线的距离来逐个判断是否OK
判断时,O(logN)
我这就是最优的最经典的,其他人说的不用看
【 在 anything1999 的大作中提到: 】
: 一个鼠标点坐标{x0, y0}, 一条线段的两个点{x1, y1}, {x2, y2}, 线宽w,
: 选取需要一定的余量,不是说鼠标点严格在线段上,而是包围线段两点构造一个类似OBB包围盒的范围(可以认为是考虑了线宽),只要鼠标点在这个包围盒内部,就算选中该线段。
: 最好是经典的算法,不要涉及太多运算(要求有点过分哈)。
: ...................
--
FROM 124.127.212.*