Closed. This question needs debugging details。它当前不接受答案。












想改善这个问题吗?更新问题,以便将其作为on-topic用于堆栈溢出。

5年前关闭。



Improve this question




以下是三次插值函数:
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之间的值,此函数将在起始值和最终值之间进行三次插值。如果要绘制此曲线,最终将得到如下结果:



这里的三次函数是:
    amount = (amount * amount) * (3f - (2f * amount));

如何调整此值以产生和产生两个切线?

产生这样的曲线:(线性起点到立方终点)



作为一项功能

就像这样:(立方开始到线性结束)



任何人有任何想法吗?提前致谢。

最佳答案

您想要的是Cubic Hermite Spline:

其中p0是起点,p1是终点,m0是起点切线,m1是终点切线

10-08 08:21