我有一系列的(x,y)坐标,如果连接起来,这就是一条折线。此多段线是地理轨迹。
我所需要的就是获得折线曲折度。它应该是有用的一种百分比。例如,这条路径有x%的曲折。
发布于 2011-09-29 21:06:37
好吧,这完全取决于你如何定义曲折。有一个wikipedia article regarding tortuosity,它可能会对这个主题有所启发。
这篇文章中有一句有趣的话告诉我们:"roughness (or tortuosity) could be measured by relative change of curvature"。这是一个很好的起点。
多段线由相邻的线段组成。可以计算每条相邻直线段之间的角度。使用这些信息,您可以对折线的曲折度有一个很好的了解。例如,假设seg(n)是点n和点n+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和1之间的值,其中0代表一条完美的直线折线)
https://stackoverflow.com/questions/7597496
复制相似问题