J'utilise ce qui suit pour obtenir la position x et y d'une entité alors qu'elle se déplace le long d'un chemin elliptique au fil du temps:
x = Math.cos(time)*width/2 y = Math.sin(time)*height/2
Existe-t-il un moyen simple de faire pivoter l'ensemble d'une certaine quantité de degrés, par exemple 45 ou 132 par exemple?
Vous pouvez utiliser une simple transformation de rotation:
x1 = x*cos(a) - y*sin(a) y1 = x*sin(a) + y*cos(a)
Où a
– est l'angle à tourner.
Cet article de Wikipedia explique en détail
Pour chaque point (x, y) que vous avez calculé avec l'équation ci-dessus, vous pouvez faire pivoter le degré theta (dans le sens inverse des aiguilles d'une montre) par l'équation suivante
Où x et y sont les coordonnées d'origine avant la rotation, x 'et y' sont les coordonnées après la rotation, theta est l'angle à tourner.
Rotation de coordonnées
Oui, il suffit de faire une rotation 2D sur les x
et y
pour faire pivoter votre ellipse:
xrot = x * cos(A) - y * sin(A) yrot = x * sin(A) + y * cos(A)
Et rappelez-vous que Radians = Degrees * PI / 180
.