下面是一个三次插值函数:
public float Smooth(float start, float end, float amount)
{
// Clamp to 0-1;
amount = (amount > 1f) ? 1f : amount;
amount = (amount < 0f) ? 0f : amount;
// Cubicly adjust the amount value.
amount = (amount * amount) * (3f - (2f * amount));
return (start + ((end - start) * amount));
}
这个函数将在0.0f-1.0f之间的数值上进行立方插值,以在起始值和结束值之间获得中间值。如果您绘制此曲线,您会得到类似于以下内容:
已过期的Imageshack图像已被删除
这里使用的是立方函数:
amount = (amount * amount) * (3f - (2f * amount));
我该如何修改这个函数以产生两个进出切线?
要产生像这样的曲线:(从线性开始到立方结束)
过期的Imageshack图像已移除
一个函数可以产生下面这样的曲线:
另一个函数可以产生像这样的曲线:(从立方开始到线性结束)
过期的Imageshack图像已移除
有人有什么想法吗?谢谢。