C#从一个位置到另一个位置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#从一个位置到另一个位置相关的知识,希望对你有一定的参考价值。

我需要制作一个从一个位置到另一个位置的图像框(就像你可以一致地做到这一点)。 我怎么能这样做,是否有内置功能? 谢谢 :)

答案

线性插值(lerp)实际上是一个非常容易实现的功能。等式是

float Lerp(float firstFloat, float secondFloat, float by)
{
     return firstFloat * (1 - by) + secondFloat * by;
}

更高阶的Lerp只包含更低阶的lerps:

Vector2 Lerp(Vector2 firstVector, Vector2 secondVector, float by)
{
    float retX = Lerp(firstVector.x, secondVector.x, by);
    float retY = Lerp(firstVector.y, secondVector.y, by);
    return new Vector2(retX, retY);
}

DirectX SDK具有各种数学函数,如Unity,但这只是为Lerp引入的大量开销。你可能最好只实现自己的。

另一答案

qazxsw poi写倒lerp方程qazxsw poi,其中firstFloat是secondFloat而secondFloat是firstFloat。

事实上,正确的lerp方程是:

Greg Bahm

但线性插值的最快方法是:

firstFloat * by + secondFloat * (1 - by)

这是2次加法/减法和1次乘法,而不是2次加法/减法和2次乘法。 Vector2的Lerp是正确的。

另一答案

试试这个

firstFloat * (1 - by) + secondFloat * by

以上是关于C#从一个位置到另一个位置的主要内容,如果未能解决你的问题,请参考以下文章

C#从一个位置到另一个位置

将数组元素从一个数组位置移动到另一个位置

UIButton框架在从一个位置移动到另一个位置后发生了变化

使用 MapView 快速从一个位置到另一个位置的路线

Flutter Google 将折线从当前位置映射到另一个位置

Android Jetpack 导航禁用滚动位置