首页 文章

通过点平滑曲线,仅使用水平,垂直线和固定半径弧

提问于
浏览
2

给定一个有序的点列表,我想绘制一条通过所有点的平滑曲线 . 曲线的每个部分可以是水平,垂直或具有给定半径r的弧(所有弧将具有相同的半径) . 过渡应该是平滑的,即一个部分末端的 Headers 应该与下一个部分开头的 Headers 相同 . 在任何两个连续输入点之间可以存在任意数量的弧或直线段 .

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

是否有一个很好的算法来构建这样的曲线? (或者,如果不能使用这样的线路,我想知道 . )

我查看了Bezier曲线,但这似乎有点矫枉过正,我无法找到一种强制执行约束的好方法 .

1 回答

  • 2

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

    possible data point configuration

    考虑用圆弧替换B和C之间的线段 . 你可以这样做来使连接连续,但要使它连续切线,你需要大量的好运,因为只有一个圆与切线AB相切,也与点C接触 . 那个在C处与X线的切线相切的切线是远程的 . 您的数据可能会像这样排列,但您不能依赖它 .

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

相关问题