2

给定一个有序的点列表,我想绘制一条穿过所有点的平滑曲线。曲线的每个部分可以是水平的、垂直的或具有给定半径 r 的弧(所有弧将具有相同的半径)。过渡应该是平滑的,即一个部分结尾的标题应该与下一部分开头的标题相同。任意两个连续输入点之间可以有任意数量的圆弧或直线段。

它有点像火车轨道,应该正交或沿着具有固定曲率的部分运行。

有没有好的算法来构造这样的曲线?(或者,在不可能有​​这样一条线的情况下,我想知道这一点。)

我研究了贝塞尔曲线,但这似乎有点过头了,我找不到一个很好的方法来执行我的约束。

4

1 回答 1

2

您在上面要求的内容对我来说意味着您寻求曲线跨点的切线连续性(类似于在结处具有切线连续性的样条曲线)。火车轨道类比至少传达了这一要求。鉴于直线和固定半径圆弧的严格限制,我相当肯定您将无法做到这一点。如果您需要这种平滑度,为什么不考虑对点进行样条插值呢?要了解为什么考虑下图:

可能的数据点配置

考虑用圆弧替换 B 和 C 之间的线段。您可以这样做以使连接连续,但要使其切线连续,您需要很大的运气,因为只有一个圆与线段 AB 相切连续,并且也接触点 C。在 C 处的切线与 CD 线的切线相匹配的圆是远程的。您的数据可能会像这样排列,但您不能依赖它。

如果我误解了您的问题,请告诉我,我会调整答案。

于 2012-07-06T14:37:24.473 回答