L-Shape算法理解
算法流程:
一、对于输入的点集(x, y),计算4条边的直线方程。
- θ从0到π/2进行遍历计算:
xcosθ + ysinθ = C1 --------------1
−xsinθ + ycosθ = C2 ------------2
式1的斜率为k1 = - cotθ,式2斜率为k2 = tanθ - e1为垂直于式1的法线(方向向量)、e2为垂直于式2的法线(方向向量)。
C1为点(x,y)在方向向量e1上的投影距离,C2为点(x,y)在方向向量e2上的投影距离。 - 计算所有点在e1、e2上的投影距离。
- 找出最佳的θ,计算最佳θ时的所有C1和C2。
- 找出最小的C1和C2值,为下方左、右2条直线的c值