如图中的点,“X”可以映射两个“Y”值,“Y”可以映射两个“X”值。
当拟合这些点的曲线时,应确保一阶导数和
可以计算二阶导数。
编辑:Floris和pancake都给出了正确的答案,谢谢你们两位。
答案 0 :(得分:1)
而不是适应' y'作为' x'的功能,您需要单独适合:
其中' t'是样条曲线的固有坐标(或其他曲线拟合,例如多项式)。
我假设在图片中你知道点的顺序 - 它不仅仅是混乱的未分类点?首先,您可以计算每个连续点之间的距离,并使用累积距离作为您的' t'参数。然后将样条拟合到' x'并且' y'坐标作为t的函数。
答案 1 :(得分:1)
在点群中间选取一个点 - 可能是重心。从这个“原点”到第一点绘制一条虚线。距离点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);
应该这样做。