【发布时间】:2021-10-25 11:28:14
【问题描述】:
我找到了很多关于如何计算两点之间或从一个点到多边形的距离的帖子,但我根本找不到如何计算每条边的距离。 我有一个多边形,坐标是这些:
[[[623 284]]
[[526 256]]
[[532 189]]
[[504 166]]
[[323 175]]
[[276 219]]
[[119 221]]
[[ 1 272]]
[[ 0 473]]
[[615 479]]]
我只是想计算每条边的长度。也许我应该将(math.dist(p, q)) 与for loop 一起使用?
【问题讨论】:
-
使用
math.dist()和for 循环当然可以。为了让您的工作更轻松,您可以考虑使用for p1, p2 in zip(points, points[1:]):处理成对的后续点。 -
[math.dist(p, q) for (p, q) in zip(points, points[1:]+[points[0]])]或[math.dist(points[i], points[(i+1)%len(points)]) for i in range(len(points))](+[points[0]] 和 %len(points) 将包括 n-1 到 0 边) -
@AKX
for p1, p2 in zip(points, points[1:]+[points[0]])如果这是一个封闭的多边形。