|
|
1
2
以下是一个简单的方法,如果每个列表中的点数较少,则可以接受:
这是 O(无) 2. ) 哪里 N N 很小-太棒了,如果不是,请告诉我们。 O(无) ) 还不够好。。。Sweep line algorithm for segment intersection O(n对数(n)) 输入: 平面上的一组线段。 输出: |
|
|
2
1
这相当容易。首先计算每条线的方程(斜率和Y截距)。坡度为(Y 1. 2. 1. -十 2. ). Y截距是Y 1. 1. 一旦你为一对线计算了它们,你就计算出它们的位置 线 1. X+b公司 1. =米 2. 2. . 你可以通过隔离X来解这个方程。例如,给定两条线Y=3x+5和Y=.5x+2:
现在我们已经确定了两者的交点 ,但我们不知道这两段是否都延伸到足够远的地方来包含这一点。为此,我们需要检查X值是否在X之间 和X 2. 对于两条线段。 许多 |