1

我正在研究可以通过一组点拟合一组贝塞尔曲线的东西。我已经能够使用Pomax的曲线拟合方法来做到这一点。这种方法的问题是它不能通过具有许多拐点的线拟合低阶贝塞尔曲线。因此,为了完成这项工作,我需要能够通过在其拐点处分割曲线然后从那里运行曲线拟合算法来获得分段三次贝塞尔曲线。问题是我不确定如何找到一组没有明确功能的点的导数。我想我总是可以计算割线而不是切线的斜率,但我不确定这是否会奏效。有人对如何找到一组点的拐点有更好的想法吗?

4

1 回答 1

0

拐点是曲率绕组从 CW 到 CCW 的分界曲线,反之亦然。所以首先检测绕组。

假设二维情况...

如果您的点{ p0,p1,p2,...,p(n-1) }缠绕在2 个后切切线的 3D 乘积的坐标p(i)signzcross

w(i)  = cross (
              ( p(i).x-p(i-1).x , p(i).y-p(i-1).y , 0)
              ( p(i+1).x-p(i).x , p(i+1).y-p(i).y , 0)
              ).z

所以如果p(i)是 inflex 那么:

w(i)*w(i-1) < 0

问题是如果w(i)w(i-1)为零,则必须跳过或特殊处理这种绕组。

于 2020-02-03T08:45:36.533 回答