如图中的点,一个“X”可以映射两个“Y”值,一个“Y”可以映射两个“X”值。
用这些点拟合曲线时,应确保一阶导数和
可以计算二阶导数。
编辑:弗洛里斯和煎饼都给出了正确的答案,谢谢你们。
如图中的点,一个“X”可以映射两个“Y”值,一个“Y”可以映射两个“X”值。
用这些点拟合曲线时,应确保一阶导数和
可以计算二阶导数。
编辑:弗洛里斯和煎饼都给出了正确的答案,谢谢你们。
与其将 'y' 拟合为 'x' 的函数,不如单独拟合:
其中“t”是样条曲线(或其他曲线拟合,例如多项式)的固有坐标。
我假设在图片中您知道点的顺序 - 它不仅仅是一堆未排序的点?因此,首先,您可以计算每个连续点之间的距离,并将累积距离用作您的 't' 参数。然后将样条拟合到 'x' 和 'y' 坐标作为 t 的函数。
在您的点簇中间选择一个点 - 可能是重心。从这个“原点”到第一点画一条假想线。到点的距离r=sqrt((x-x0)^2+(y-y0)^2);
和角度theta=atan2((y-y0),(x-x0));
。计算r
和theta
对于所有点;如果 theta 环绕,则添加 2*pi 以使其连续。现在您可以对 theta 的函数 r 进行样条拟合。最后,您可以为许多 theta 值插入样条曲线并计算相应的x=r*cos(theta);
和y=r*sin(theta);
那应该这样做。