如何在 Python 中找到通过多边形中心点的线?

问题描述 投票:0回答:1

我有一个像这样的多边形

我想从这些数组点中找到红线

重点是

array = [[4095, 2660],
   [4035, 2660],
   [3956, 2666],
   [3881, 2678],
   [3810, 2695],
   [3740, 2718],
   [3656, 2748],
   [3601, 2771],
   [3710, 2767],
   [3722, 2763],
   [3803, 2736],
   [3870, 2719],
   [3946, 2704],
   [4017, 2697],
   [4098, 2695],
   [4095, 2660]]

我尝试使用 Shapely 来做到这一点,但我不能,而且要点也不完全是这样。我不能使用两个坐标来找到它

python polygon shapely
1个回答
0
投票

你可以假设以相同 x 坐标开始和结束的 2 条线是平行的 现在取两者的平均值(又名

y_avg = (y1+y2)/2 
)并从
(x_start,y_avg) -> (x_end,y_avg)
绘制新的石灰 或者我错过了什么? 如果 x 坐标不完全匹配,引入一个
abs(x1_start-x2_start)<distance_threshold
或类似的东西,并为结束做同样的事情 然后再一次,如果你这样做,你可能还想检查音调 通过采取
pitch1=(y1_start-y1_end)/(x1_end - x2_end)
现在比较
abs(pitch1-pitch2) < pitch_threshold
在这种情况下,您必须平均 x 开始/结束坐标和 y 开始/结束坐标 (abs是绝对值)

© www.soinside.com 2019 - 2024. All rights reserved.