Le sinus et le cosinus de t sont respectivement les coordonnées y et x d'un point sur le cercle formant un angle t avec l'axe x. Pas besoin de ça dans un rectangle! Un rectangle est composé de quatre lignes. Si t
va de 0
à 1
, il atteint le point (px,py)
à t==0
et à (qx,qy)
à t==1
avec la ligne donnée par:
(l(x),l(y)) = (t*qx + (1-t)*px, t*qy + (1-t)*py)
si au lieu de 0
et 1
, le temps passe de t0
à t1
, vous pouvez d'abord normaliser le temps, puis appliquer la formule ci-dessus.
(l(x),l(y)) = ( ((t-t0)/(t1-t0))*qx + ((t1-t)/(t1-t0))*px, ((t-t0)/(t1-t0))*qy + ((t1-t)/(t1-t0))*py )
Maintenant, pour votre rectangle, divisez en quatre cas avec un if
pour chaque bord qui couvre l'un des intervalles de temps et appliquez un mouvement de ligne.
Notez que si votre rectangle est aligné sur l'axe, vous aurez toujours la valeur x ou la valeur y qui est constante. Par exemple, pour t entre 0
et a/4
(et en supposant que (X, Y) est en bas à gauche),
(l(x),l(y)) = ((4*t/a)*(X+Width) + (1-4*t/a)*(X), Y+Height)
Ce qui équivaut également à:
(l(x),l(y)) = (X + (1-4*t/a)*(Width), Y+Height)