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方程是:
但线性插值的最快方法是:
firstFloat * by + secondFloat * (1 - by)
这是2次加法/减法和1次乘法,而不是2次加法/减法和2次乘法。 Vector2的Lerp是正确的。
另一答案
试试这个
firstFloat * (1 - by) + secondFloat * by
以上是关于C#从一个位置到另一个位置的主要内容,如果未能解决你的问题,请参考以下文章
UIButton框架在从一个位置移动到另一个位置后发生了变化