# interpolateBetween (Compartilhado)

> Interpola entre dois conjuntos de três números seguindo uma curva de easing.

- **Plataforma**: MY Multiplayer (MYMP)
- **Tipo**: Função Lua
- **Lado**: Compartilhado
- **Categoria**: Dados e utilidades
- **URL**: https://wiki.mymp.gg/pt/interpolateBetween

## Sintaxe

```lua
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

```lua
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)
```

## Veja também

- [getEasingValue (Compartilhado)](https://wiki.mymp.gg/pt/getEasingValue.md): Calcula o valor de uma curva de easing num ponto do progresso.
- [moveObject (Compartilhado)](https://wiki.mymp.gg/pt/moveObject.md): Move um objeto suavemente até uma posição, girando-o no caminho.
