1

我有一系列(x,y)坐标,如果加入这代表一条折线。此折线是地理轨迹。

我所需要的只是获得折线曲折度。它应该是一种有用的百分比。例如,路径有 x% 的曲折度。

4

1 回答 1

2

好吧,这完全取决于您如何定义曲折度。有一篇关于曲折度的维基百科文章,它可能会对这个主题有所了解。

文章中一个有趣的句子告诉我们:"roughness (or tortuosity) could be measured by relative change of curvature"。这是一个很好的起点。

您的折线由相邻的线段组成。您可以计算每个相邻线段之间的角度。使用此信息,您可以很好地了解折线的曲折度。例如,设点和点seg(n)之间的线段:nn+1

tortuosity = sum(abs(angle(seg(n), seg(n+1))) for n in 1 to number of segment)

(计算两条线段之间的角度留作练习,但不需要数学学位)

上述度量未按比例缩放:您拥有的点数越多,值可能就越高。您可以根据拥有的线段数轻松缩放此结果:

unit_tortuosity = tortuosity / (n * pi)

(两条线段之间的最大角度为pi,调整您的angle()函数,使其返回介于0和之间的结果pi。因此您的曲折度最多为n*pi,因此上述比例因子允许在0和之间有一个值10代表一条完美的直线折线)

于 2011-09-29T13:06:36.720 回答