我有两条线,它们在屏幕上的随机位置开始和结束,并形成一个角度。然后我有一个对象遵循这两行。然而,在第一条线和第二条线的交点处,物体快速旋转并沿着第二条线向下移动。我不想要这个。
所以我想做的是能够创建这条线的弯曲版本,在交叉点处有更多的 U 而不是急转弯。我查看了曲线拟合论文,但似乎无法找到可以让我从 V 中创建 U 的方法。
抱歉出现了糟糕的图像... 我想取左边的一张,然后生成右边的一张(相同的起点、终点和交叉点)。另一个例子,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/