Quando eu quero mover um objeto ao redor do ponto, eu faço:
point.x *= cosf(timer.timeElapsed);
point.y *= sinf(timer.timeElapsed);
Como fazer com que o ponto se mova na trajetória do sinal oito ou infinito?
mathematics
movement
trajectory
Yevhen
fonte
fonte
Como observa Marton, existem várias curvas em "número de oito" que podem atender às suas necessidades. Talvez o mais simples seja o lemniscato de Gerono , que tem a parametrização:
e fica assim:
No entanto, o lemniscato de Bernoulli pode ser visualmente mais agradável; possui uma parametrização muito semelhante ao lemniscato de Gerono, exceto que os dois eixos são dimensionados por um fator de
1/(sin(t)^2 + 1) = 2/(3 - cos(2*t))
:Se parece com isso:
(Animações feitas com o Maple 13, compactadas com GIFsicle.)
fonte
Encontrei aleatoriamente outro usando esta fórmula:
Conforme plotado por Wolfram Alpha :
fonte
t
. Eu recomendo incluir uma descrição de como você usaria essa fórmula para posicionar um objeto em movimento ao longo do tempo.O produto das distâncias de qualquer ponto nessa curva para (-1, 0) e (1,0) é constante e é igual a 1.
fonte