线弯曲的简单算法

时间:2013-12-25 08:51:34

标签: c++ algorithm graphics gaussian curve

我正在寻找一种简单的线条弯曲算法(很像烟花自由形态工具)。 在我的C ++程序中,一行是一组有序点,每个点都是(x,y)形式。 假设我有5个直线(仅为简单起见)有序点(该线不一定与任何轴平行)。我捏了第3个点然后把它拖了起来。我期待有一条新的,高斯般的曲线。我如何实现“点”和“线”并不重要,但请记住,我应该为新的预期线添加更多的点,这样它就会弯曲,细化和流动(而不是换行符)。 我想过使用高斯函数但我需要移动弯曲部分的能力(见下图)。

提前致谢!

Figures 1 - 3 describe the process of "Pinching and curving"

1 个答案:

答案 0 :(得分:4)

您需要B-spline或Bezier曲线来近似您的形状。

有一个nice interactive demo Bezier样条曲线,因此您可以使用它来查看效果。以下示例截图:

bezier

根据您的操作系统和开发环境,可能已经有许多工具或API可用。