Python 如何使用多边形的直骨架计算多边形的斜接偏移
我有一个用Python实现的直骨架算法,我想用它来偏移多边形的边 我看过几篇文章建议采用这种抵消方法,不幸的是,没有一篇文章提供了如何实现这一目标的具体信息。 其中:Python 如何使用多边形的直骨架计算多边形的斜接偏移,python,algorithm,geometry,offset,computational-geometry,Python,Algorithm,Geometry,Offset,Computational Geometry,我有一个用Python实现的直骨架算法,我想用它来偏移多边形的边 我看过几篇文章建议采用这种抵消方法,不幸的是,没有一篇文章提供了如何实现这一目标的具体信息。 其中: 因为直线骨架的定义是基于 连续波前或草火传播的边缘,它是 特别适合多边形偏移。特别是,它可以被使用 为了获得所谓的“斜接”偏移,角保持为 在偏移多边形中这样做 如果p的骨架已知,则计算单个 任意给定半径r的偏移曲线简单、有效(线性时间) 而且数值稳定。我们所要做的就是穿过骨架 以某种方式插入偏移曲线的元素 我尝试将每
问题:使用多边形的直骨架计算多边形斜接偏移的正确方法是什么?我不太确定第二张图像中显示的偏移是怎么回事,但是一旦有了骨架,计算偏移应该是非常直接的 骨架的每个弧都可以在3空间中被视为线段(或射线),第3个坐标是时间。也就是说,它开始于某个时间t_s(当它在事件中创建或作为入射到输入点的初始波前顶点时),结束于某个波前事件中的某个时间t_v(如果它是有界边) 现在,要查找距离为t的偏移曲线,请在所有圆弧上迭代,对于在时间t(即t_s
另外,cf..输入(飞机轮廓)是否在任何地方都可用(在免费许可证下),以及您使用(想要使用)的偏移距离是多少?正如@weasel所提到的,在已知骨架后获得偏移应该是微不足道的。在开始(左侧)的下方图像中,突出显示了偏移的问题部分:似乎偏移“穿透”了另一侧,笔直的骨架应有助于避免此类问题。您可以将您的输出与--一个允许偏移量的直接框架代码进行比较。感谢你们两位的回复。按照@gue的建议,使用不同的库测试输出,我发现我的实现并不完全正确。骨架上角度的细微差异导致偏移之间的小不匹配。我现在明白了偏移方法是正确的,但是它被应用到了一个不正确的框架上。正如我在上面的其他评论中提到的,我错误地假设我的实现是正确的,而它并不是一开始就正确的。骨架中的轻微扭曲导致偏移不匹配。话虽如此,您的答案正确地回答了原始问题,并且解释得很好(+1)。谢谢你抽出时间。