c++ - 在角线上拟合曲线?

标签 c++ lua curve-fitting bezier spline

我有两条线,它们在屏幕上的随机位置开始和结束,并形成一个角度。然后我有一个对象遵循这两行。然而,在第一条线和第二条线的交点处,物体快速旋转并沿着第二条线向下移动。我不想要这个。

所以我想做的是能够创建这条线的弯曲版本,在交叉点处有更多的 U 而不是急转弯。我查看了曲线拟合论文,但似乎无法找到可以让我从 V 中创建 U 的方法。

enter image description here

抱歉出现了糟糕的图像... 我想取左边的一张,然后生成右边的一张(相同的起点、终点和交叉点)。另一个例子,http://en.wikipedia.org/wiki/Curve_fitting

有什么想法吗?

最佳答案

你应该看看http://en.wikipedia.org/wiki/Bezier_curve

或者只是 http://upload.wikimedia.org/wikipedia/commons/thumb/2/2d/Bezier_2_big.gif/240px-Bezier_2_big.gif

如果知道两条线的起点/终点坐标,可以按照上面链接中的方法简单计算一条贝塞尔曲线。

如果没有(例如像你发布的位图),你可以先做霍夫变换来提取坐标

关于c++ - 在角线上拟合曲线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16705205/

相关文章:

c++ - 修改 2D Array 的 malloc 策略,使 malloc 成功

C++ 使用传递函数

arrays - 将字节数组从 C 传递到 Lua

c++ - 编译器生成的默认构造函数如何比自己编写的只初始化成员的构造函数更有效?

c++ - 如何在SDL2中获取窗口的客户区大小

c++ - Lua协程

lua - 更改SciTE编译命令

python - 在 matplotlib 中使用 Debye+Einstein 模型进行比热拟合

r - 使用 nls 的指数回归

python-3.x - 使用 scipy.optimize.curve_fit 时如何将参数传递给拟合函数