问题标签 [lerp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
74 浏览

c++ - 为什么这个 DirectX 10“D3DXVec3Lerp”函数返回无效数字?

我在使用以下代码时遇到问题:

如您所见,这个想法是获取从另一个客户端接收到的消息,并找到对象的速度以计算其位置。

我知道那部分是有效的,因为当我简单地将汽车的位置更新为方程的输出时,汽车会去它应该去的地方(以一种非常紧张的方式)。

但是,当我尝试从当前位置移动到新位置时,汽车甚至没有出现在屏幕上。查看从 Ve3Lerp 函数实际返回的内容,我得到的只是“-1 INDEF”。

有什么想法可以解决吗?

0 投票
1 回答
2358 浏览

c# - 在两种颜色之间徘徊

我试图在 1 秒内在两种颜色之间转换,从黑色到蓝色,但我似乎无法正确处理。目前,当我单击按钮时,颜色保持黑色并且永远不会变为蓝色。我需要解决什么问题?谢谢!

0 投票
2 回答
2960 浏览

c# - 在 Vector.Lerp Unity 5.6 中更改移动速度

我在统一游戏中使用 Vector3.Lerp 来简单地将游戏对象从一个位置平滑地移动到另一个位置。下面是我的代码:

代码工作正常,游戏对象在两点之间平滑移动。但是到达目的地大约需要1秒。我想让它移动得更快。我尝试降低 float timeTakenDuringLerp 的值,但速度不受影响。我已经按照本教程进行操作,那里的解释还说要更改 timeTakenDuringLerp 变量以更改速度,但它在这里不起作用。

请问有什么建议吗?

0 投票
0 回答
48 浏览

c# - lerping 时的旋转看起来不对

我有一个功能可以让相机前的物体“拾取/握住”所述物体。但是,在握住物体时,如果我以某种方式将其撞到另一个物体上,则所握住的物体会以意想不到的方式旋转。我不会在脚本中的任何位置更改对象的旋转。发生了什么事,我该如何解决这个问题以使其正确旋转?这就是它的样子

0 投票
1 回答
1696 浏览

c# - 在 Unity 中同时放大对象并将其移动到位

我正在创建一个功能,当用户单击对象的子对象时,父对象会按一定比例放大,并且父对象会移动,以使子组件位于中心点。我所有的工作都很好。

目前,我正在协程中执行该功能,以在缩放和定位之间进行调整。我注意到的是,如果说我有一个远离焦点的大子对象,它会在曲线上移动,因为它不需要缩放太多,但是它必须移动更远的距离因为它的位置。当要移动的位置较小且 scaleTo Vector 较大时,会发生相反的效果。有没有办法抵消两个向量的差异?

所以我的问题是,有没有办法缩放和移动物体,使其运动不会那么不自然?我将在下面发布我的协程:

0 投票
1 回答
148 浏览

javascript - 如何在 p5.js (javascript) 中逐渐将变量设置为 0?

我正在尝试用上、下、左、右键控制一个椭圆。我想让它平滑,所以椭圆不会立即停止。此外,当它向左移动并按下右箭头时,它会更快地转身。

最小、完整和可验证的示例:

0 投票
1 回答
244 浏览

c++ - 对称 Lerp 和编译器优化

我有一个功能:

对于那些没有看过的人来说,这比后者更可取,x0 + (x1-x0) * alpha因为后者并不能保证lerp(1.0f, x0, x1) == x1.

现在,我希望我的lerp函数有一个额外的属性:我想要lerp(alpha, x0, x1) == lerp(1-alpha, x1, x0). (至于为什么:这是一个更复杂功能的玩具示例。)我想出的似乎可行的解决方案是

这种双重减法具有接近零和接近一的舍入效果,因此如果alpha = std::nextafter(0)(1.4012985e-45), then 1 - alpha == 1and so 1 - (1-alpha) == 0。据我所知,这始终是正确的1.0f - x == 1.0f - (1.0f - (1.0f - x))。似乎也有这样的效果w0 + w1 == 1.0f

问题:

  1. 这是一个合理的方法吗?
  2. 我可以相信我的编译器会做我想做的事吗?特别是,我知道在 Windows 上它有时对部分结果使用更高的精度,而且我知道编译器可以做一些代数;显然 1-(1-x)==x 代数。

这是在 C++11 中使用 Clang、VisualStudio 和 gcc。

0 投票
1 回答
1603 浏览

c# - Unity - 如何快进到动画的百分比?

好的,我已经查找了与 Unity 的 Animator 相关的所有内容,我知道您可以使用https://answers.unity.com/questions/1418940/how-can-i-know-跳转到特定帧并获取动画百分比a-percent-of-animation.htmlhttps://answers.unity.com/questions/181903/jump-to-a-specific-frame-in-an-animation.html

然而,我还没有看到任何关于这方面的内容 - 就像在游戏 Causality(使用 Unity 制作)中一样,我需要在滚动网站上做类似 Magic Leap 所做的事情:https ://www.magicleap.com

我在 Blender 中的模型上创建了一个动画,而不是运行它,我需要根据其 y 轴位置快进/转到动画的某个百分比。

现在我可以在 y 轴上向上/向下拖动我的模型,并且我有一个transform.position.y模型可以继续移动的最大值和最小值(就像一个小车)

这是我需要动画在 y 位置为最大值时以 100% 完成,在最小高度为 0% 并且能够在用户拖动时来回移动的可视化:

在此处输入图像描述

这甚至可能吗?

0 投票
1 回答
128 浏览

c# - Vector3.Lerp 只执行第一次线性插值

当用户在键盘上向左或向右输入时,我试图让玩家飞船在三点之间移动。我希望玩家在这些点之间平稳移动,但似乎该Lerp函数只插值一次。

这是Game master检查用户输入并将其传递给Player controller执行以下操作的脚本Lerp

游戏大师:

播放器控制器:

截屏:

在此处输入图像描述

为什么会这样?

0 投票
0 回答
286 浏览

c++ - 在 C++/OpenGL 中使用 Eigen 使用四元数进行形状插值

我正在尝试使用四元数在两个三角形之间实现形状插值,正如Alexa、Cohen-Or 和 Levin在 2000 年的论文As-rigid-as-possible shape interpolation中所讨论的那样。

假设三角形 1 有点 A、B、C,三角形 2 有点 M、N、O。两个对应的矩阵(分别为 T1 和 T2)如下:

然后我取 T1 的倒数并乘以 T2 以执行奇异值分解以获得矩阵 SVD,以找到旋转和缩放矩阵。

然后我使用这个四元数和 sMatrix 进行插值。注意:计时器从 0.0f 开始并增加 0.0001f(一些小常数)直到达到 1.0f。动画转换。

然后我将原始三角形的每个点 P 转换为它自己的 3x1 向量并乘以 A。

最后,我在新的 v(0) 和 v(1) 处画一个点,然后对三角形的其他两个顶点重复此操作。

当计时器非常小时(接近 0)时,当我在原始三角形 (T1) 的位置得到一个新三角形时,随着计时器的增加,新三角形会缩放并从 T1 平移,但不会移向最终三角形(T2)。

如果我只使用通过取 T1.inverse() 并乘以 T2 计算的矩阵,线性插值似乎有效。所以,我认为我的问题在于 slerp 或 SVD 的实施,但我不确定。

还有什么我应该包括的内容有助于确定我出错的地方吗?

编辑:添加时间矩阵,在 V 矩阵上切换转置调用。