找到给定的(符号)线列表的中心线

时间:2018-06-25 13:07:53

标签: math line center sympy

我目前正在努力解决当前的问题: 我已经定义了 n 行(使用SymPy)。最后,它们将描述一个多边形。 (请参见图片中的目标)

现在,我想找到这些多边形的“中间”或“中心”线。 我的第一个想法是在线条之间画一个圆圈。 但是:算法如何知道将“球”放在哪条线相对?

所以基本上,我可以定义一行开始。现在,我正在搜索距离最近的线,依此类推。但是对于我来说,这种解决方案似乎不够通用,无法捕获所有多边形类型。

我如何编写脚本,以便能够从一列sympy线创建多边形中心线(或在示例情况下为e)的线?

我还准备了一些有关“骨架化”的东西,但这似乎更适合于像素图像。

非常感谢! 最好的祝福 本尼

Example cases

1 个答案:

答案 0 :(得分:0)

我不确定您的解决方案必须有多一般,但这是一种可以找到链接中三个用例的中间线的技术:

假设一条蓝线由点(B1,B2)定义,另一条蓝线由点(D1,D2)定义。我将创建两条新线:一条连接B1和D1,另一条连接B2和D2。使用SymPy,应该容易确定线段的中点。所需的红线是连接(B1,D1)段和(B2,D2)段中点的线。

这应该在不修改(a)和(b)的情况下起作用;如果您记得分别处理每对线段,则(c)情况可以用相同的想法解决。享受吧!