我正在寻找一种用于线弯曲的简单算法(非常类似于fireworks的自由格式工具)。
在我的C++程序中,一行是一组有序点,每个点都是(x,y)形式。
假设我有5个有序点(为简单起见)的直线(该线不一定平行于任何轴)。我捏第三点并将其向上拖动。我期望有一条新的,类似高斯的曲线。我如何实现“点”和“线”并不重要,但请记住,我应该在新的预期线中添加更多点,以便它可以弯曲,细化和流动(而不是换行)。
我曾考虑过使用高斯函数,但我需要能够移动弯曲部分(请参见下图)。

提前致谢!

最佳答案

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

Bezier样条曲线有一个nice interactive demo,因此您可以一起玩以查看效果。下面的示例屏幕截图:

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

关于c++ - 直线弯曲的简单算法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20770903/

10-09 06:02