Quand je veux déplacer un objet autour d'un point, je fais:
point.x *= cosf(timer.timeElapsed);
point.y *= sinf(timer.timeElapsed);
Comment faire bouger le point sur une trajectoire de signe à huit ou à l'infini?
mathematics
movement
trajectory
Yevhen
la source
la source
Comme le note Marton, il existe plusieurs courbes "figure de huit" qui pourraient répondre à vos besoins. Le plus simple est peut-être le lemniscate de Gerono , qui a la paramétrisation:
et ressemble à ceci:
Cependant, le lemniscate de Bernoulli peut être visuellement plus agréable; il a une paramétrisation très similaire à la lemniscate de Gerono, sauf que les deux axes sont mis à l'échelle par un facteur de
1/(sin(t)^2 + 1) = 2/(3 - cos(2*t))
:Cela ressemble à ceci:
(Animations faites avec Maple 13, compressées avec GIFsicle.)
la source
J'en ai trouvé un autre au hasard en utilisant cette formule:
Comme l'a tracé Wolfram Alpha :
la source
t
. Je recommanderais d'inclure une description de la façon dont vous utiliseriez cette formule pour positionner un objet en mouvement dans le temps.Le produit des distances de tout point de cette courbe à (-1, 0) et à (1,0) est constant et égal à 1.
la source