Math 将两点之间的曲线转换为直线连接

Math 将两点之间的曲线转换为直线连接,math,geometry,computational-geometry,point,Math,Geometry,Computational Geometry,Point,我有两点p1和p2,线l是黑色的。该线由100多个内部点组成,这些点排列成一个阵列,从p1开始,到p2结束 现在,我想将曲线转换为一条直线,如上图中的红线。然而,我有点不确定如何做到这一点 到目前为止,我的想法是以固定距离迭代直线,例如,从起点向前取所有点,并向前取100个像素,计算直线的曲线,如果超过阈值,使直线改变方向,然后迭代下一部分,依此类推。我不确定这是否会像预期的那样起作用 另一个想法是制作一个贪婪的算法,试图最小化黑线和红线之间的距离。然而,这可能导致我希望避免的小步骤。这些步骤可

我有两点p1和p2,线l是黑色的。该线由100多个内部点组成,这些点排列成一个阵列,从p1开始,到p2结束

现在,我想将曲线转换为一条直线,如上图中的红线。然而,我有点不确定如何做到这一点

到目前为止,我的想法是以固定距离迭代直线,例如,从起点向前取所有点,并向前取100个像素,计算直线的曲线,如果超过阈值,使直线改变方向,然后迭代下一部分,依此类推。我不确定这是否会像预期的那样起作用

另一个想法是制作一个贪婪的算法,试图最小化黑线和红线之间的距离。然而,这可能导致我希望避免的小步骤。这些步骤可以通过提高转弯成本来避免

关于这个特殊的问题有什么算法,或者你将如何解决它?

搜索短语多边形链简化,你会看到关于这个主题的大量文献。 以下是一个可以引导您找到其他人的参考:

布泽尔,莉莲。用于亚像素精确渲染的多边形链的优化简化。计算几何42.1 2009:45-59。

搜索短语polygonalchainsimplification,您将看到关于此主题的大量文献。 以下是一个可以引导您找到其他人的参考:

布泽尔,莉莲。用于亚像素精确渲染的多边形链的优化简化。计算几何42.1 2009:45-59。


很好的参考资料。多边形链简化是我词汇表中的一个新术语。非常感谢。嗨,约瑟夫。谢谢你的消息来源。我读过这篇文章,它看起来相当先进,但并非不可能实现。现在我更喜欢一个更简单的解决方案,因为我不太关心计算时间。你能推荐一种算法,它仍然能产生接近最优的结果,但更慢、更简单吗?keep every k'th point有点太简单了:-。也许是道格拉斯·佩克算法?@MortenGR:是的,道格拉斯·佩克相对容易实现,你甚至可以找到现有的代码。很好的参考。多边形链简化是我词汇表中的一个新术语。非常感谢。嗨,约瑟夫。谢谢你的消息来源。我读过这篇文章,它看起来相当先进,但并非不可能实现。现在我更喜欢一个更简单的解决方案,因为我不太关心计算时间。你能推荐一种算法,它仍然能产生接近最优的结果,但更慢、更简单吗?keep every k'th point有点太简单了:-。也许是道格拉斯·佩克算法?@MortenGR:是的,道格拉斯·佩克相对容易实现,你甚至可以找到现有的代码。