interpolateBetween
Compartido
Interpola entre dos grupos de tres números siguiendo una curva de easing.
float, float, float interpolateBetween(float x1, y1, z1, float x2, y2, z2, float progress, string easingType [, float easingPeriod = 0.3, float easingAmplitude = 1, float easingOvershoot = 1.70158])
Parámetros
| Nombre | Tipo | Descripción |
|---|---|---|
| x1, y1, z1 | float | Los valores de partida. También acepta un vec3. |
| x2, y2, z2 | float | Los valores de destino. También acepta un vec3. |
| progress | float | El progreso, de 0 a 1. |
| easingType | string | La curva de easing, como "Linear", "InOutQuad", "OutBounce" o "SineCurve". |
| easingPeriod | float | El período de las curvas elásticas.por defecto 0.3 |
| easingAmplitude | float | La amplitud de las curvas elásticas y de rebote.por defecto 1 |
| easingOvershoot | float | Cuánto se pasan del objetivo las curvas Back.por defecto 1.70158 |
Retorno
Los tres números interpolados. Con el progreso en 1 o más, son exactamente los de destino cuando la curva termina en ellos.
Ejemplo
local start = getTickCount()
addEventHandler("onClientRender", root, function()
local progress = math.min((getTickCount() - start) / 2000, 1)
local x, y = interpolateBetween(0, 0, 0, 400, 300, 0, progress, "InOutQuad")
dxDrawText("Hello", x, y)
end)