现有曲线之间的内插曲线看起来不正确

我有一个图表,有几条现有的曲线,我试图插入新的曲线之间。 我已经使用y =((x – x1)(y2 – y1)/(x2 – x1))+ y1forms的线性插值,但新曲线看起来不合适。

您可以在图片中看到每隔一行(从底部开始)就是插入的行。 虽然第二行数据点正好在y轴的第一和第三数据点之间居中,但是第三行数据点不在第二和第四y数据点之间居中,使得graphics看起来偏斜。

所以我认为线性插值可能不是我在这里之后。 有人可以推荐另一种方法来创build现有的曲线之间的曲线,但复制相同的forms?

在这里输入图像说明

突变的突变难以插值。 当你想要插入线突然改变梯度的时候,没有来自靠近的点的信息,这些信息给出应该发生梯度突然改变的信息。

要复制图案,实际上需要复制下面一行的渐变,然后平滑过渡到上面一行的渐变。 从视觉上我们可以看到,它应该发生在上下两条线的梯度变化的中间,但是检测这些变化的位置并不是微不足道的。

梯度正在发生突然变化的点由于y轴的微小变化而在x轴上发生很大的变化。 当计算梯度变化之间的x值的y值时,可以得到像差。 我build议尝试基于y值插值x值。 对于每条曲线,对于y轴中的每个小的任意步骤,从任一侧的曲线中查找/计算最接近的x值,并取平均值来绘制插值。

一个非常规的方法可能是一种插值式的插入方式。 可以分别对不同梯度的3个区域进行build模。

首先确定通过2组扭曲画出的2条线,创build3个空间区域。 垂直线将停靠在graphics右下angular附近的水平线上。

对于每个区域(并且可能对于每个区域中的每个x的值)确定线的梯度。 当你插入一条新的线时,对于每个起点(x1,y1),看看它落在哪个区域。当确定下一个点时,使用该区域的梯度作为一个重要因素。 继续这样做直到达到区域边界。 当插入点跨越不同的区域时,则使用该区域的梯度作为插值下一个点的重要因素。

如果严格地这样做,那么将非常尖锐,所以graphics上有一些平滑(或者在区域之间过渡时使用加权平均的平滑因子,但是这可能是一个很大的努力,而不一定是更接近的结果!)。