Simulation mouvement de balistique

Simulation mouvement de balistique - Java - Programmation

Marsh Posté le 03-04-2014 à 22:36:20    

Bonsoir,
 
Je suis actuellement en deuxième année de classe préparatoire et mon rêve depuis 2 jours c'est de réaliser une application JAVA qui ressemble (même un tout petit peu) à celle là : http://phet.colorado.edu/sims/proj [...] on_fr.html (c'est en FLASH mais il y'a beaucoup d'exemples sur internet avec JAVA)
 
Alors, j'utilise le logiciel JDevlopper (de Oracle) pour la programmation en JAVA, et mon niveau de connaissance se résume au développement d'une calculatrice graphique avec JFrame ou des jeux plutôt facile à réaliser en 2D (Labyrinthe ect..)
 
Je me dirige vers vous car j'ai vraiment besoin de votre aide! la partie théorique me parait très bien expliquée et bien détaillée ici : http://gilbert.gastebois.pagespers [...] stique.htm  en prenant en compte les frottements!  
Donc on aboutit à l'équation du mouvement du genre :  z  = ( g/( hv0 cos α )  + tan α) x  +  g/h2  loge( 1 - h x/(v0 cos α)) +  z0
 
J'ai commencé à programmer cette équation sous JDevlopper en JAVA, mais je ne suis pas sur que je suis sur le bon chemin! en effet je voudrais au début simuler la trajectoire de la balle pour aboutir à un truc de ce genre : http://gilbert.gastebois.pagespers [...] stique.htm
 
 

Code :
  1. public class calcul {
  2.    
  3.     private static double valeur_g=9.8;
  4.     private static double masse_balle=9.8;
  5.     public double angle;
  6.     public double frottement;
  7.     public double vitesse;
  8.     public double x;
  9.     public double y;
  10.     public double z;
  11.     public double z0;  // position intiale
  12.    
  13.     ///z  = ( g/( hv0 cos α )  + tan α) x  +  g/h2  loge( 1 - h x/(v0 cos α)) +  z0
  14.    
  15.     public calcul() {
  16.         // A FAIRE  
  17.     }
  18.    
  19.     public static void gestion_trajectoire(double angle, double frottement, double vitesse, double x , double y , double z , double masse_balle, double valeur_g, double z0 ) {
  20.      
  21.        z = (valeur_g/(frottement*vitesse*Math.cos(angle)) + Math.tan(angle))*x + (valeur_g/frottement*frottement)*Math.log(1- (frottement*x/(vitesse*Math.cos(angle)))) + z0 ;
  22.     }
  23.    
  24.        
  25.     }


 
Est ce que je suis sur le bon chemin? Je devrais après intégrer l'équation de trajectoire dans un code JAVA qui simule une courbe ? et est ce que c'est possible de la simuler progressivement et non pas de la dessiner directement ?
 
Je vous remercie d'avance
Bonne journée

Reply

Marsh Posté le 03-04-2014 à 22:36:20   

Reply

Marsh Posté le 04-04-2014 à 08:08:11    

julienjava a écrit :

Bonsoir,
 
Je suis actuellement en deuxième année de classe préparatoire et mon rêve depuis 2 jours c'est de réaliser une application JAVA qui ressemble (même un tout petit peu) à celle là : http://phet.colorado.edu/sims/proj [...] on_fr.html (c'est en FLASH mais il y'a beaucoup d'exemples sur internet avec JAVA)
 
Alors, j'utilise le logiciel JDevlopper (de Oracle) pour la programmation en JAVA, et mon niveau de connaissance se résume au développement d'une calculatrice graphique avec JFrame ou des jeux plutôt facile à réaliser en 2D (Labyrinthe ect..)
 
Je me dirige vers vous car j'ai vraiment besoin de votre aide! la partie théorique me parait très bien expliquée et bien détaillée ici : http://gilbert.gastebois.pagespers [...] stique.htm  en prenant en compte les frottements!  
Donc on aboutit à l'équation du mouvement du genre :  z  = ( g/( hv0 cos α )  + tan α) x  +  g/h2  loge( 1 - h x/(v0 cos α)) +  z0
 
J'ai commencé à programmer cette équation sous JDevlopper en JAVA, mais je ne suis pas sur que je suis sur le bon chemin! en effet je voudrais au début simuler la trajectoire de la balle pour aboutir à un truc de ce genre : http://gilbert.gastebois.pagespers [...] stique.htm
 
 

Code :
  1. public class calcul {
  2.    
  3.     private static double valeur_g=9.8;
  4.     private static double masse_balle=9.8;
  5.     public double angle;
  6.     public double frottement;
  7.     public double vitesse;
  8.     public double x;
  9.     public double y;
  10.     public double z;
  11.     public double z0;  // position intiale
  12.    
  13.     ///z  = ( g/( hv0 cos α )  + tan α) x  +  g/h2  loge( 1 - h x/(v0 cos α)) +  z0
  14.    
  15.     public calcul() {
  16.         // A FAIRE  
  17.     }
  18.    
  19.     public static void gestion_trajectoire(double angle, double frottement, double vitesse, double x , double y , double z , double masse_balle, double valeur_g, double z0 ) {
  20.      
  21.        z = (valeur_g/(frottement*vitesse*Math.cos(angle)) + Math.tan(angle))*x + (valeur_g/frottement*frottement)*Math.log(1- (frottement*x/(vitesse*Math.cos(angle)))) + z0 ;
  22.     }
  23.    
  24.        
  25.     }


 
Est ce que je suis sur le bon chemin? Je devrais après intégrer l'équation de trajectoire dans un code JAVA qui simule une courbe ? et est ce que c'est possible de la simuler progressivement et non pas de la dessiner directement ?
 
Je vous remercie d'avance
Bonne journée


 
En survolant la partie théorique du lien, ce que j'aurais fait :

  • avec les équations du lien, on a x(t) et z(t), y étant constant dans le problème décrit si j'ai bien lu (en tout cas dans le cas sans frottement)
  • calculer tMax avec la portée xMax
  • échantillonner le temps, par exemple toutes les 0,1s de 0 à tMax
  • programmer les équations, calculer x(t) et z(t) à tous les pas de temps et stocker les résultats dans un tableau ou une liste
  • au final, on aurait la position de la balle pour tous les instants d'échantillonnage
  • soit calculer les positions pour tous les instants puis afficher le résultat + animation si l'on souhaite
  • soit calculer les positions pour tCourant puis afficher le résultat puis incrémenter tCourant puis affichage etc.


Il reste la manière d'afficher le résultat, points successifs, on relie les points, on charge une image + animation, etc.
Par exemple en programmant les équations sous un tableur :
http://reho.st/preview/self/885f12fa771775b3bb151bc9eb02dd89c5e7e253.jpg
http://reho.st/preview/self/c3012a7e54e277612302ae66548fd45f05a13fc7.jpg
 
En espérant que je n'ai pas écrit de bêtises et que cela pourra vous être utile.
 
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed