我有一个点 (x,y) 列表,我需要能够确定沿最佳拟合(绿色)线的点的顺序。
如图所示,我希望它们的顺序为 1,2,3,即使 x 坐标的顺序为 x3,x1,x2 (我知道 y 坐标看起来像我想要的顺序,但那是只是这个例子)
如果我有一条线 aX + bY + c=0,有没有办法找到垂直于穿过点(X1,Y1)的线的点?
查看了回归算法,但它们似乎只是给了我这条线。
看着图片,我想我应该能够计算出每条蓝线,它们与绿线垂直并穿过适当的点。
然后求解蓝线与绿线相交的点。
然后计算沿绿线距每个绿色/蓝色交叉点的特定点的距离。
有捷径吗? 如果我只处理 <100 points, should I just rotate them about the point on the green line where y=0 and use the new x-value as the sequence?
在直线上定义一些基点
S
,并得到它的方向向量D
。
然后对于每个点
P[i]
使用点(标量)积计算正交投影到直线上的参数
t(i) = (P[i] - S).dot.D
并通过该参数对点进行排序
附注当A、B系数非零时,即可得到基点
S=(0, -C/B)
和方向向量D=(-C/A, C/B)