Geolabo
GeoLabo
Géothèque
Aides
Tir de projectile

  Un canon est placé au point de coordonnées (-5,0). La cible est située entre les points de coordonnées (3,0) et (3.5,0). Le canon lance un missile dans une certaine direction avec un certain angle. Va-t-il toucher sa cible???

  Dans ce tutoriel, on se propose d'effectuer la simulation de ceci sous GeoLabo, avec les fonctionnalités suivantes : on peut choisir l'angle de tir, la vitesse. Lorsque le missile atteint à nouveau le sol, le mot "Perdu" s'affiche si le missile a raté la cible, et "Gagné" dans le cas contraire. Tout un programme donc!

  On commence par créer le canon, que l'on matérialise par le point A de coordonnées (-5,0). A est donc un point repéré dans le langage des objets de GeoLabo. Pour modéliser le choix de l'angle de tir, on va tracer un vecteur qui va pouvoir tourner le long d'un demi-cercle centré en A. On crée donc les points B et C de coordonnées respectives (-4,0) et (-6,0). On trace ensuite le demi-cercle d'extrémités B et C situé dans le demi-plan {y>0). On crée ensuite un point magique D situé sur ce demi-cercle, puis on crée le vecteur AD. Après gommage des traits qui ne servent plus à rien, on obtient :

On crée ensuite la cible. Pour cela, on crée les points G et H de coordonnées (3,0) et (3.5,0), puis le segment [GH].

  Les choses faciles sont terminées! Il faut maintenant créer les variables utiles. D'abord, la vitesse initiale. On commence par créer une variable libre v, à valeurs réelles, et comprise entre 5 et 15. On crée ensuite les expressions des vitesses instantanées horizontales et verticales vx et vy. vx vaut v multiplié par le cosinus de l'angle. Puisque D est sur un cercle de rayon 1 autour de C, on a vx=v*absc(D)-absc(A). De même, vy=v*ord(D)-ord(A). On crée donc ces deux variables par l'intermédiaire du menu Objets, Rubrique Numérique>Variable donnée par une expression. Les champs doivent être remplis comme ici :

On crée ensuite le temps! enfin, la variable de temps... t est donc une variable libre, à valeurs réelles, comprise entre 0 et 2. On crée aussi une variable g, donnée par l'expression 9.81, qui modélise l'attractivité de la terre. D'après les lois de la mécanique classique, les coordonnées du missile sont au cours du temps régis par les équations :
x=vx*t-5
y=-g*t^2/2+vy*t
On va créer le point qui a pour coordonnées les expressions précédentes. Il y a toutefois un léger problème : ces expressions ne sont valables qu'entre les moments où le missile est lancé et le moment où il touche terre! Si l'on veut créer un point qui représente exactement le missile, il nous faut créer une expression conditionnelle, c'est-à-dire x=... si une certaine condition est réalisée, et x=... sinon! C'est tout à fait possible sous GeoLabo grâce à la fonction if qui a la syntaxe suivante :
if(expr;respos;resneg)
expr est une expression booléenne (un test), respos est la valeur renvoyée si le test est rempli, et resneg est la valeur renvoyée sinon (la syntaxe des expressions booléennes se trouve dans l'aide en ligne de GeoLabo). Qu'allons-nous faire dans notre contexte? On crée d'abord la variable t0 donnée par l'expression 2*vy/g (qui correspond au temps où le mobile va toucher le sol). Ensuite le point repéré E de coordonnées :
en abscisse : if (t>0 && t<t0,vx*t-5,1000)
en ordonnée : -g*t^2/2+vy*t
On a mis 1000 dans l'expression précédente pour que le point n'apparaisse pas dans la figure si on n'est pas dans le bon intervalle de temps! Pour mieux modéliser le missile, on va créer un disque autour de E : on choisit donc de tracer un cercle de centre E et de rayon 0.075 grâce à l'objet Cercle par centre et rayon... Bien sûr, le point E n'est pas forcément visible à l'écran, mais vous pouvez y accéder par l'intermédiaire du menu "Rappels".

  Il est temps de voir si ce que l'on a fait donne quelque chose... Pour cela, on va créer une animation par l'intermédiaire du menu correspondant. Dans les diverses boites de dialogue, choisissez "Quand une variable évolue", donnez un nom, choisissez la variable t, et ne changez rien d'autre pour le moment! Puis lancez l'animation, toujours pas l'intermédiaire du menu. Pas mal non! Pour arrêter l'animation, cliquez sur la croix qui est apparue en bas à droite de l'écran...

  Il est temps de reprendre la construction! D'abord, il faut pouvoir contrôler la vitesse v. Pour cela, on crée un contrôle de variable graphique! On crée ensuite les textes "Gagné" et "Perdu" qui apparaissent suivant le résultat du tir... Pour cela, on crée deux points repérés, à expression conditionnelle I et J. I a pour coordonnées :
  • en abscisse : if ( (t>t0) && ((vx*t0-5)>=3) && ((vx*t0-5)<=3.5),2,1000)
  • en ordonnées : 2
(ceci signifie que I va s'afficher si le missile a touché la cible). Pour J, on a :
  • en abscisse : if ( (t>t0) && ((vx*t0-5)<3) || ((vx*t0-5)>=3.5),2,1000)
  • en ordonnées : 2
On va ensuite attacher le texte "Gagné" au point I, et le texte "Perdu" au point J. Le plus facile est de faire quelques essais. Lors d'un essai gagnant le point I va apparaître : c'est le bon moment pour attacher "Gagné" à ce texte. Lors d'un essai perdant, attachez "Perdu" au point J.

Facile non? Il vous reste à embellir tout cela...
email : - Geolabo - F. Bayart