1

如图中的点,一个“X”可以映射两个“Y”值,一个“Y”可以映射两个“X”值。

用这些点拟合曲线时,应确保一阶导数和

可以计算二阶导数。

Figure :
fig http://www.baidupcs.com/thumbnail/fbdd467ca3dce4e05e55b209bf6cc6dd?fid=3154234395-250528-2669431106&time=1364974850&sign=FDTA-DCb740ccc5511e5e8fedcff06b081203-2skix2HZJ0DXlkEgRMUWxxsBeQQ%3D&expires=8h&size=c850_u580&quality=100

编辑:弗洛里斯和煎饼都给出了正确的答案,谢谢你们。

4

2 回答 2

1

与其将 'y' 拟合为 'x' 的函数,不如单独拟合:

  • 'x' 作为 't' 的函数
  • 'y' 作为 't' 的函数

其中“t”是样条曲线(或其他曲线拟合,例如多项式)的固有坐标。

我假设在图片中您知道点的顺序 - 它不仅仅是一堆未排序的点?因此,首先,您可以计算每个连续点之间的距离,并将累积距离用作您的 't' 参数。然后将样条拟合到 'x' 和 'y' 坐标作为 t 的函数。

于 2013-04-02T04:28:20.997 回答
1

在您的点簇中间选择一个点 - 可能是重心。从这个“原点”到第一点画一条假想线。到点的距离r=sqrt((x-x0)^2+(y-y0)^2);和角度theta=atan2((y-y0),(x-x0));。计算rtheta对于所有点;如果 theta 环绕,则添加 2*pi 以使其连续。现在您可以对 theta 的函数 r 进行样条拟合。最后,您可以为许多 theta 值插入样条曲线并计算相应的x=r*cos(theta);y=r*sin(theta);

那应该这样做。

于 2013-04-03T01:41:31.010 回答