首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >计算多段线的曲度

计算多段线的曲度
EN

Stack Overflow用户
提问于 2011-09-29 20:43:13
回答 1查看 1.1K关注 0票数 1

我有一系列的(x,y)坐标,如果连接起来,这就是一条折线。此多段线是地理轨迹。

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

EN

Stack Overflow用户

回答已采纳

发布于 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之间的线段:

代码语言:javascript
复制
tortuosity = sum(abs(angle(seg(n), seg(n+1))) for n in 1 to number of segment)

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

上面的测量没有缩放:你拥有的点越多,值可能越高。您可以根据您拥有的线段数轻松缩放此结果:

代码语言:javascript
复制
unit_tortuosity = tortuosity / (n * pi)

(两条直线段之间的最大角度为pi__,请调整angle()函数,使其返回0pi__之间的结果。所以你的曲折度最多是n*pi__,因此上面的比例因子允许有一个介于01之间的值,其中0代表一条完美的直线折线)

票数 2
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7597496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档