interpolateBetween
Compartilhado
Interpola entre dois conjuntos de três números seguindo uma 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
| Nome | Tipo | Descrição |
|---|---|---|
| x1, y1, z1 | float | Os valores de partida. Também aceita um vec3. |
| x2, y2, z2 | float | Os valores de destino. Também aceita um vec3. |
| progress | float | O progresso, de 0 a 1. |
| easingType | string | A curva de easing, como "Linear", "InOutQuad", "OutBounce" ou "SineCurve". |
| easingPeriod | float | O período das curvas elásticas.padrão 0.3 |
| easingAmplitude | float | A amplitude das curvas elásticas e de quique.padrão 1 |
| easingOvershoot | float | Quanto as curvas Back passam do alvo.padrão 1.70158 |
Retorno
Os três números interpolados. Com o progresso em 1 ou mais, são exatamente os de destino quando a curva termina neles.
Exemplo
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)