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

Algorithmes et structures de données Discussion :

Faire rebondir des disques sur des disques.


Sujet :

Algorithmes et structures de données

  1. #1
    Membre éprouvé
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Points : 1 220
    Points
    1 220
    Par défaut Faire rebondir des disques sur des disques.
    Bonjour.

    je travaille actuellemet sur le mouvement de disques ( en 2D donc) qui devraient se "rebondir" dessus. (sans déformations).

    j'arrive à detecter la collision et même la Droite de collision, mais après, je bloque complètement, sachant que je dispose des paramètres vitesse, position, et rayon (pour la masse, il faut la mettre proportionelle au rayon.)


    si vous avez une idée...

    merci.
    Méphistophélès
    Si la solution ne résout pas votre problème, changez le problème...
    Cours et tutoriels C++ - FAQ C++ - Forum C++.

  2. #2
    Rédacteur
    Avatar de MasterOfChakhaL
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2004
    Messages
    2 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 147
    Points : 3 264
    Points
    3 264
    Par défaut
    il doit y avoir quelque chose à faire avec la quantité de mouvement (p=m.v en vexteur...) qui doit se consever si c'est un choc sans déperdition.

    la masse ne devrait-elle pas être proportionnelle au carré du rayon (proportionnelle à la surface)?
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    N'oubliez pas de cliquer sur quand votre question à trouvé une solution.

    Si vous n'avez pas encore lu les règles du club, mieux vaut tard que jamais!

  3. #3
    Membre éclairé
    Inscrit en
    Juin 2005
    Messages
    644
    Détails du profil
    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 644
    Points : 754
    Points
    754
    Par défaut
    1- la masse doit être proportionelle à R^2 ( si même épaisseur et même densité )
    2- Pour analyser le choc sans perte d'énergie on doit poser
    a- conservation de l'énergie
    m1*v1^2 + m2*v2^2 =m1*v'1^2 + m2*v'2^2
    b- conservation de la quantité de mouvement
    m1* V1 + m2 V2 = m1 V'1 + m2 V'2 (ici Vi et V'i vecteurs vitesse avant et après le choc pour les éléments i =1 et 2.

    on peut par exemple voir
    http://fr.wikipedia.org/wiki/Choc_%C3%A9lastique

  4. #4
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Bonjour,

    Si tu as le point de colision entre tes disques, tu peux calculer la tangente aux disques en ce point et donc aussi la normale.
    Ensuite, la direction avant le contact est le symétrique par rapport à la normale de la direction après le choc.
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  5. #5
    Membre éprouvé
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Points : 1 220
    Points
    1 220
    Par défaut
    Citation Envoyé par MasterOfChakhaL
    il doit y avoir quelque chose à faire avec la quantité de mouvement (p=m.v en vexteur...) qui doit se consever si c'est un choc sans déperdition.

    la masse ne devrait-elle pas être proportionnelle au carré du rayon (proportionnelle à la surface)?
    oui, tout à fait, petite erreur.

    j'ai fini par résoudre mon problme (j'arrivais à faire les rebonds de plein fouets, mais pas les autres cas) par contre, mon plus gros problème à été de créer la fonction arccos que je n'avais pas. je l'ai fait par recherche dichotomique, je ne sait pas si c'est la meilleure methode...

    merci.
    Méphistophélès
    Si la solution ne résout pas votre problème, changez le problème...
    Cours et tutoriels C++ - FAQ C++ - Forum C++.

  6. #6
    Membre averti Avatar de Rafy
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    415
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 415
    Points : 417
    Points
    417
    Par défaut
    Humm, je n'utilise pas la fonction arcos pour mes collisions, mais ça marche quand même... !?

    Il faut symétriser la vitesse au point de collision des deux objets en collisions par rapport au plan de collision.
    Pour cela, il faut appliquer la formule suivante :
    Ajouter un effort pendant 1 Frame (impulsion) valant F = -2*(m1*m2)/(m1+m2)*V*n*n

    avec
    m1 masse de l'objet 1
    m2 masse de l'objet 2
    V vitesse de la collision : vitesse de 1 au point de collision - vitesse de 2 au point de collision
    n la normale au plan de collision
    Première grosse démo en construction :
    http://bitbucket.org/rafy/exo2/

  7. #7
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Bonjour,

    Je crois me rappeller d'un langage qui n'avait pas arccos mais qui avait arctan.

    arcos(x) = arctan((sqrt(1-x^2))/x).

    Si il n'y a pas arctan non plus , ....
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  8. #8
    Membre expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Points : 3 958
    Points
    3 958
    Par défaut
    On fait l'intégrale de 1/(1+x^2).
    Formateur expert .Net/C#/WPF/EF Certifié MCP disponible sur Paris, province et pays limitrophes (enseignement en français uniquement).
    Mon blog : pragmateek.com

  9. #9
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    On change de langage ? (quel langage n'a pas arccos au fait ?)

    --
    Jedaï

  10. #10
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    quel langage n'a pas arccos au fait ?
    Turbo-Pascal - CPM 8 bits - années 80 ?
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

Discussions similaires

  1. [VB.NET] Comment rechercher des fichiers sur un disque.
    Par vijeo dans le forum Windows Forms
    Réponses: 5
    Dernier message: 04/08/2017, 10h17
  2. Comment ajouter des séries dans des graphes sur des feuilles variables
    Par Molomarcopolo dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 06/07/2012, 16h26
  3. Trigger pour mettre des droits sur des procedures et des vues
    Par briino dans le forum Développement
    Réponses: 3
    Dernier message: 23/09/2009, 09h44
  4. Réponses: 15
    Dernier message: 27/09/2006, 16h51
  5. avoir des tables sur plusieurs disques ??
    Par reski dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 09/02/2006, 16h26

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