Voilà un petit feu d'artifice pour la nouvelle année.
Côté gestion du feu en lui même, rien de bien nouveau. Il doit y en avoir plusieurs sur ce site.
Un point monte puis explose en débris, qui retombent.
En règle général, on affecte une vitesse initiale et une position, puis on le traite comme n'importe quel projectile.
Le problème ici étant de prévoir le point de destination.
Pour afficher le message, on connais où et quand explosent les feux d'artifices.
Pour ce faire, on doit passer par l'équation paramétrique du mouvement d'un projectile. Celui-ci décrivant une parabole.
Faisons un peu de math: On suppose que le temps entre le lancement et l'explosion est constante et vaut MaxT (comme dans mon programme, dingue non...)
Suivant X :
le point va, de façon linéaire du point de lancement au point d'explosion.
donc : X(t)= "Point d'origine"+ t * "différence des abscisses"/MaxT
En gros, interpolation linéaire entre l'origine à l'explosion.
Suivant Y :
le point décris une parabole "y(t)=at²+bt+c".
au temps t=0, y=0 donc c=0.
au temps t=explosion (t=Maxt), la position est y(t). Chose que l'on connais puisque l'on sais où ça explose.
Enfin, pour définir une parabole il faut un troisième point. Pour ce faire, on va supposé que l'on connais le maximum de la courbe (y'(t)=0). Or ce maximum est pile au milieu, entre les deux endroits où la parabole coupe les abscisses. Donc, si le maxi est en N, la courbe coupe les abscisses en (0,0) et en (2N,0). Pour connaitre se point, on pose choisi (au hasard) le maxi de telle sorte qu'il soit pas trop loin du point d'explosion. En d'autres termes, la fusée explose peu de temps avant ou après avoir passée le maxi.
On résout le système, (2 inconnue a et b, et deux équations)
Et miracle... notre feu d'artifice est bien au bonne endroit au bon moment.
Après, c'est de la décoration plus ou moins commentée dans le code.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.