IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Mathématiques Discussion :

Lancer de balle avec angle et vitesse


Sujet :

Mathématiques

  1. #1
    Membre habitué
    Inscrit en
    Février 2007
    Messages
    156
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 156
    Points : 131
    Points
    131
    Par défaut Lancer de balle avec angle et vitesse
    Bonjour à tous !

    Est ce que quelqu'un pourrait me donner la formule pour simuler un lancer de balle pour un jeu avec un angle et une vitesse de départ...

    J'ai trouvé pas mal de formules sur le net mais souvent très mal expliquées...

    Je pense qu'il y aura comme variables :

    - coordonnées X
    - coordonnées Y
    - Angle
    - Vitesse
    - Gravité ?

    Merci

  2. #2
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 053
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 053
    Points : 9 392
    Points
    9 392
    Par défaut
    X0, Y0 : le point de départ
    dX, dY : La vitesse initiale ; si la vitesse était constante (pas de gravité) , on aurait à tout instant t :
    X = X0 + t * dX Y = Y0 + t * dY

    Mais il y la gravité , qu'on va noter G
    Donc à chaque unité de temps (un vingtième de seconde par exemple), tu fais :
    X = X + dX
    Y = Y + dY
    dY = dY - G
    Tu calcules l'emplacement du projectile en fonction de son emplacement précédent, et tu modifies la composante verticale de la vitesse (effet gravité).

    Dans cette formule , la vitesse horizontale est constante ( pas de frottements).
    Si on voulait prendre en compte les frottements, on ajouterait une formule à chaque unité de temps : X = X * K (avec k = 0.99 par exemple)
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  3. #3
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 419
    Points : 5 818
    Points
    5 818
    Par défaut
    salut,

    pour le calcul des angles
    le principe est issue de calcul de résistance des matériaux (RDM)
    ce qu'il faut savoir c'est que dans un monde parfait toutes les forces sont en équilibre
    cela veut dire qu'il faudrait prendre en compte toutes les forces mis en jeu au moment de l'impact afin de calculer l'angle de retour.

    Pour ton cas il est préférable simplifie a sa plus simple expression

    je pense que pour le moment on peut simplifier en émettant l’hypothèse que l'angle de retour forme un angle a 90° par rapport a l'angle que fournit la direction face a l'obstacle sauf dans le cas ou l'angle de direction est perpendiculaire à l'obstacle dans ce cas là c'est du 180° (restitution total de la force d'opposition)
    pour faire réaliste tu pourrais faire 90 +/- 1° ce qui permettra de mettre un peu d'incertitude dans tes mouvement
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  4. #4
    Membre habitué
    Inscrit en
    Février 2007
    Messages
    156
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 156
    Points : 131
    Points
    131
    Par défaut
    Merci pour vos réponse !

    J'ai finalement réussi à trouver la solution en m'aidant de deux scripts trouvés sur le net.

    La solution est sur le même principe que celui donné par TBC92.

    En AS3 cela donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    var gravite:Number = 0.5;
    var vitesse:Number = 10;
    var angle:Number=0.50; // en radians
    var accelX:Number=Math.cos(angle)*vitesse;
    var accelY:Number=-Math.sin(angle)*vitesse;
     
     
    addEventListener (Event.ENTER_FRAME, moteurGravite);
     
    function moteurGravite(e:Event)
    {
     
    	balle.x+=accelX;
    	balle.y+=accelY;
    	accelY+=gravite;
    }

    Cela permet d'avoir un lancer parabolique en fonction de la vitesse et de l'angle, il suffit ensuite de gérer les collisions et de rajouter le frottement si besoin avec la solution donnée par TBC92.


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 22/09/2005, 10h09
  2. [Système][Runtime] lancer une commade avec un PIP
    Par IVAGO dans le forum API standards et tierces
    Réponses: 18
    Dernier message: 19/08/2005, 19h49
  3. [FLASH MX2004] Lancer une anim avec des paramètres ??
    Par gchanteux dans le forum Flash
    Réponses: 4
    Dernier message: 23/03/2005, 17h49
  4. [C#] Lancer et dialoguer avec une console ?
    Par Selenite dans le forum Windows Forms
    Réponses: 4
    Dernier message: 12/09/2004, 19h48
  5. [Flash MX2004] Lancer un *.exe avec fscommand
    Par pioup dans le forum Flash
    Réponses: 7
    Dernier message: 30/07/2004, 16h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo