我正在使用贝塞尔曲线在我正在制作的程序中绘制曲线。我有五点。 这是我试图创建的曲线的粗略草图。我正在尝试制作一条经过 A、B、C、D 的曲线。然而,C 并不是一个确定的点,它是曲线应该穿过哪里以使其看起来像法国曲线的建议。 C 以 45 度从 E 出来。
This is an illustration of what I am trying to do.
有人对如何近似穿过这些点的法国曲线有任何建议吗?
最佳答案
您需要使用三次贝塞尔曲线。三次贝塞尔曲线由四个点定义,但不经过中间的两点,它们仅指定贝塞尔曲线的向量。对您来说不幸的是,有无限数量的三次贝塞尔曲线可以“穿过”您的四个点。
唐·兰卡斯特 (Don Lancaster) 写道 a document (pdf)关于这一点。其中涉及到有关他使用的算法的一些非常有趣的细节。这是在后记中,我怀疑你正在使用它,但至少原理在那里。
Here is an article在 CodeProject 上,他们构建了一个库来完成您尝试使用 C# 做的事情。
关于贝塞尔曲线和法国曲线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1785460/