我有一个图表,其上有几条现有曲线,我试图在其间插入新曲线。我使用了y =((x - x1)(y2 - y1)/(x2 - x1))+ y1形式的线性插值,但新曲线看起来不合适。
您可以在图片中看到每隔一行(从底部开始)是插值线。虽然第二行数据点精确地居中在y轴中的第一和第三数据点之间,但第三行数据点不在第二和第四y数据点之间居中,使得图形看起来偏斜。
所以我认为线性插值可能不是我在此之后所做的。有人可以推荐另一种方法,在现有方法之间创建曲线,但复制相同的形式吗?
答案 0 :(得分:1)
渐变的突然变化难以插值。当您希望插值线突然改变渐变时,没有来自近距离点的信息,这些信息可以提供有关梯度突然发生变化的信息。
要复制模式,您实际上需要复制下面一行的渐变,然后平滑过渡到上面一行的渐变。在视觉上我们可以看到它应该在两侧上下线的渐变变化之间发生,但检测这些变化的位置并非易事。
发生梯度突然变化的点通过x轴的大的变化仅由y轴的微小变化分开。在计算渐变变化之间的x值的y值时,会得到像差。我建议尝试基于y值插入x值。对于每条曲线,对于y轴中的每个小任意步,找到/计算两侧曲线中最接近的x值,并取平均值绘制插值。
答案 1 :(得分:0)
非传统的方法可能是一种单一的插值方式。可以分别对不同梯度的3个区域进行建模。
首先确定通过2组扭结绘制的2条线,创建3个空间区域。垂直线将停在图表右下角附近的水平线上。
对于每个区域(并且可能对于每个区域中的x的每个值)确定线的梯度。当您对新线进行插值时,对于每个起点(x1,y1),查看它所属的区域。在确定下一个点时,使用该区域的梯度作为重要因素。继续这样做,直到到达区域边界。当插值点穿过不同的区域时,则使用该区域的梯度作为插值下一个点的重要因素。
如果你严格这样做,那将是非常尖锐的,所以图表有一些平滑(或者当你在区域之间转换时使用渐变的加权平均值来合并平滑因子,但这可能是一大堆努力而不一定更接近结果!)