utilisation de formule dans un moteur physique
Répondre à la discussion
Affichage des résultats 1 à 14 sur 14

utilisation de formule dans un moteur physique



  1. #1
    invitea41845f7

    utilisation de formule dans un moteur physique


    ------

    Bonjour!!

    Je suis en train de développer un moteur physique en as3 (langage de programmation de flash). J'ai dû pour cela me penché sur l'étude de la physique mécanique.

    Mais voila, alors que toute la partit concernant la détection des collision ce déroule a merveille et au pixel près, je cale sur les opération a effectuer au moment de l'impact.

    Je vais expliquer brièvement comment je procède.

    -Nous avons 30 image par seconde, les calcules qui détermine la vitesse des objets (et donc leur déplacement) sont fait à chaque image. (tout les 33,3333...ms pour être précis).

    -chaque objet a une masse, et une élasticité.
    -chaque objet a une liste de force qui lui sont appliqué à chaque image.

    -à chaque image, j'additionne les forces de chaque objets, j'en pondère l'accélération, puis la vitesse, qui me permet de les déplacé.
    accélération = Force/masse, Vitesse1 = vitesse0+accélération.

    C'est a l'impact que j'ai des problèmes, la ou l'énergie cinétique intervient.
    Prenons un exemple pour que cela sois plus parlant (dans mon système, les unité de mesure n'ont pas d'importance, car les distance sont en pixel, et on considérera que tout les valeur sont a l'échelle):

    -Prenons un objet A, de masse ma = 100 et un objet B de masse mb = 200. Ses deux objet on été propulsé par deux forces (des frapes par exemple), et ce retrouve a l'image T1 avec les vitesse suivante: Va = 51 et Vb = -30.5.

    -on déplace nos objet et on ce retrouve a T2 (ou image 2).

    A ce moment là, on détecte qu'il y a collision. Le bute est de savoir quelle sont les forces qui s'exerce sur les deux objet, pour déterminer les déplacement aux images d'après, en particulié a T3.

    Je sais deux chose:
    -l'énergie cinétique de A vaut 1/2*m*V² -> Ea=100/2 *51^2 = 130050 et Eb = 93025.

    -La Troisième loi de Newton ou principe des actions réciproques (wikipedia):
    A et B étant deux corps en interaction, la force Fa/b (exercée par A sur B) et la force Fb/a(exercée par B sur A) qui décrivent l'interaction sont directement opposées : Fa/b = -Fb/a
    Déjà, première question: les énergie cinétique peuvent elle être convertie en Force?
    je pense a ceci:
    A applique une énergie de 130050 sur B, ce qui pour B, revient a une vitesse de Vb = (Ea/mb/2 )^ 1/2 = 18 (environs). Si l'on considère que l'on est entre T0 et T1, la vitesse vaut l'accélération, et donc la force vaut Ac*m = V*m et donc Fa/b = 18*200 = 3600.
    Et à l'inverse, la force exercé sur a Fb/a vaut 2100. (-2100 vue que le sens de la vitesse est négatif).

    Vient la 3ème loi de newton. Je suppose qu'elle traduit le fait que deux objet ne ce passe pas a travers. Mais je ne sais pas vraiment comment l'appliquer. On voie bien dans les calcule précédents que les force ne sont pas égale.
    de plus j'ai eu ce raisonnement: A à une force de 3600. B de -2100. B applique sa force sur A, et vise versa. La force final de A (sur A) est finalement de 1500. (3600 + -2100). Celle de B (sur B) également (-2100 + 3600 = 1500).
    B va dont ralentir, ok, mais A va accélérer!!

    Comme ça n'a aucune logique, je me suis dit que la 3ème loi de newton veut dire que si un objet A applique une force sur B Fa/b, il reçois une force opposé équivalente.
    donc A reçoi une force de -3600, pour une force final de 1500 + -3600 = -2100.
    voyons l'influence que ça a sur la vitesse: Va = 51 + -2100/100=30.
    et pour B: 1500+2100 = 3600, donc Vb= -30.5 + 3600/200 = 5.5.

    C'est beaucoup plus cohérent, A ranlentie, B change de sens. Mais la A est passé de l'autre coté de B, ce qui n'est pas possible (B recule de 5px et A va dans le même sens de 30px). De plus, appliqué des force strictement opposé pose un autre problème:
    une balle qui arrive avec un angle de 45° sur un mure, repars avec un angle de -45°. Mais si les forces sont strictement opposé, elle repart avec le même angle.

    voila, j'espère avoir été suffisamment clair pour que vous puissiez m'aider, la structure de mon programme fonctionne, je doit juste appliqué les bonne force au bon moment.

    Merci d'avance!!

    -----

  2. #2
    invitee0b658bd

    Re : utilisation de formule dans un moteur physique

    bonjour,
    je pense que tu peux utiliser la conservation de la quantité de mouvement, cependant il te restes a caracteriser ton choc entre choc parfaitement elastique et choc parfaitement mou
    fred

  3. #3
    invitea41845f7

    Re : utilisation de formule dans un moteur physique

    Merci pour ton aide!!

    En faisans une petit recherche sur "la conservation du mouvement", j'ai fini par établire cette formule (V' est la vitesse après l'impact):

    ma*Va + mb*Vb = ma*V'a+mb*V'b

    Ce qui rejoint parfaitement la 3ème loi de newton, j'aurai même pus trouver cette formule sans faire cette recherche

    Une foi que j'ai V'a et V'b, je peut déduire les forces et appliqué les modification du a l'élasticité et/ou la mollesse.
    Mais j'ai deux inconnue, il me faut donc une autre équation pour les trouvés, mais je prend laquel?

  4. #4
    triall

    Re : utilisation de formule dans un moteur physique

    Bonjour
    Attention s'il vous plait à la grammaire ! L'infinitif, le à , le ce/se...!!!
    J'ai commencé à calculer, mais...
    J'ai trouvé ça sur Internet pour le choc de 2 masses qui on va dire est central, élastique ...
    http://bdp.ge.ch/webphys/recherche/f.../doce01488.doc
    C'est l'exercice 9 , l'équation est bonne, et vectorielle car elle satisfait
    conservation de la quantité de mouvement et de plus

    Condition équivalente à la conservation de l'énergie (choc élastique)
    La vitesse relative avant le choc est la même qu'après le choc .
    Pour être tranquille, vérifiez que 1/2m1v1²+1/2m2v2²=1/2m1v'1²+1/2m2v'2².
    J'ai gagné un tour ?
    Cordialy ...
    1max2mov

  5. A voir en vidéo sur Futura
  6. #5
    invitee0b658bd

    Re : utilisation de formule dans un moteur physique

    bonjour,
    pour pouvoir varier les rendus, je te conseille de jouer entre ces deux extremes
    le choc elastique
    http://fr.wikipedia.org/wiki/Choc_%C3%A9lastique
    et le choc mou
    http://fr.wikipedia.org/wiki/Choc_mou
    la quantité de mouvement est conservée dans tous les cas, mais pas forcément l'enrgie cinetique
    fred

  7. #6
    invitea41845f7

    Re : utilisation de formule dans un moteur physique

    oups, au départ j'avais crue que quand verdifre parlait d'élasticité, c'était l'élasticité au sens propre du terme: la force dégagée par la déformation d'un matériau pour une longueur de déformation donnée.

    vérifiez que 1/2m1v1²+1/2m2v2²=1/2m1v'1²+1/2m2v'2².
    moi en faite j'ai besoin de savoir les valeurs de V'1 et V'2, sachant que j'ai m1,m2, V1, V2.
    V'1 et V'2 son deux inconnue, et quand on a deux inconnue, il faut une 2eme équation.

    mais avec le wiki que tu me montre sur les choc élastique, j'ai supputé que les quantité de mouvement sont bêtement échanger entre les matériaux, en tout cas les chémats le fond pensé très clairement.

    donc, si on prend un objet mobile de masse m1= 1 a une vitesse de 100, qui rentre dans un mure de masse 1000000 et imobile , et que
    le mure prend la quantité de mouvement de la balle:

    Qballe = 100*1 = 100.
    échangé au mure:
    Qmure = 100, donc Vmure = 100/1000000, sois une vitesse suffisamment petite pour être considérée comme nulle.

    Qmure = 0
    échange à la balle:
    Qballe = 0*1 et dc Vballe= 0;

    la balle est stoppé net. Si les objets sont des solides extrêmement dure,(ni mou ou élastique dans le 1er sens du terme) et que l'on est dans l'espace, C'est logique?

    pour les chocs mous, je ne comprend pas cette formule :
    Ec = -1/2 (m1m2/m1 - m2) *(V1-V2)²

    L’énergie cinétique maximale, disponible pour être dissipée dans une collision inélastique, est proportionnelle au carré de la vitesse relative d’un des objets par rapport à l’autre.
    L’énergie disponible est indépendante des permutations d’indices !
    Une énergie peut être négative ??? "Ec" est l'énergie cinétique cumulée des deux objets, ou l'énergie à retirer du système?

  8. #7
    triall

    Re : utilisation de formule dans un moteur physique

    Citation Envoyé par Splyf Voir le message
    moi en faite j'ai besoin de savoir les valeurs de V'1 et V'2, sachant que j'ai m1,m2, V1, V2.
    V'1 et V'2 son deux inconnue, et quand on a deux inconnue, il faut une 2eme équation.

    ?
    Regardez mon post, message 4; avec le lien, exercice 9 ; j'ai pris la peine de poster avec les formules Latex , de contrôler que l'équation est bonne, on vous donne v'1 et v'2 , la formule est là ! Le lien ne fonctionne pas ?
    Comprendo ?

    Un choc élastique en physique c'est un choc qui "rebondit complètement" , par exemple on lache un balle par terre , elle remonte au même niveau .Dans un choc élastique, l'énergie cinétique avant est la même qu'après !
    1max2mov

  9. #8
    invitea41845f7

    Re : utilisation de formule dans un moteur physique

    QUOTE]Comprendo ?[/QUOTE]

    capiche!!

    en faite j'avais crue avoir cliqué sur ton lien et en avoir lue le contenue, mais comme j'avais 50 onglet d'ouvert, c'était un autre site que j'avais moi même trouvé, qui contenait des exercices, mais seulement 4, donc non, j'avais pas compris
    Mais je reconnais, je suis allez trop vite, et ça énerve, donc pardon!

    Et en plus ces formule sont exactement ce que je cherchait.

    par exemple on l'ache un balle par terre , elle remonte au même niveau .Dans un choc élastique, l'énergie cinétique avant est la même qu'après !
    A force de le voir écrit partout ça commence à rentrer. Mais j'en profite pour rebondir au sujet du coefficient d'élasticité:

    F=k*L, ou F est la force, L la longueur de la déformation, et k est une constante qui dépend du matériaux. (Réminiscence de mes cours de génie chimique )

    Il me semble que L pourrai être considéré comme une vitesse, et que finalement, F=K*V.
    Dans ce cas, une brique a un coefficient proche de 0, car elle ne rebondit pas, et une balle, un coefficient proche de 1. J'ai bon là?

    Par contre, je n'arrive pas a assimilé le concept d'impact moue (pardon, je moubstine, euh... m'obstine).

    Cette formule: Ec = -1/2 (m1m2/m1 - m2) *(V1-V2)²
    trouver ici: http://haar.chez.com/collision/collision.htm

    le "-1/2" ma fait pensé que le résultat est négatif, mais il peut aussi bien être positif. C'est le sens où la force dû à cette énergie est appliquée? une énergie peut être négative?



    En suite, il parle "d'énergie disponible", j'ai donc pensé que c'était l'énergie qu'il reste dans le système âpres l'impact, et donc, qu'elle serai inférieur à la valeur trouver dans le cadre des choc élastique.

    J'ai donc refait les calcules avec l'exemple que j'ai utilisé plus haut, et je tombe sur une valeur négative (forcément), alors que la formule m/2 * v² donne un résultat positif(forcément), et qui plus est plus grande en valeur absolue. Donc, rien a voir...

    qu'elle est donc cette énergie disponible négative? le coté obscure de la force?

    En réalité mon moteur n'es qu'une simulation de la réalité. Les paramètre serons poussez à des extrèmes irréaliste, mais le bute est de donné l'illusion du réel. Donc je pense que mon approche avec le coefficient d'élasticité est suffisante, d'autant que je ne prendrai jamais les valeurs réels des matériaux en question mais bien celle qui me plaisent le plus(a tâtons quoi).
    En revanche, si vous pensez que l'utilisation des choc moue changera sensiblement le résultat, ça change tout. C'est quand même le rendu final de mon bidule qui est en jeu sur cette histoire, c'est pour ça que je demande

    En tout cas merci encore, déjà tout ça sa permet d'avancer.

  10. #9
    triall

    Re : utilisation de formule dans un moteur physique

    Dans le lien que vous m' avez donné ; après le choc les 2 objets n'en forment plus qu'un il me semble .
    Ils écrivent Pf=(m1+m2)Vf pf représente la quantité de mvt finale , Vf vitesse finale, il est clair que m1 et m2 ne font plus qu'un .
    Pour votre équation F=K.L ; je ne la connais pas , mais elle est forcément incomplète . Il faudrait faire aussi F2 pour l'autre masse Pour k=0 , ok, pas de force , alors 1 objet est stoppé net .
    Mais lors d'un choc, on peut dire, sans doute qu'une force s'exerce pendant un temps court, qui permet à un objet de changer de direction .
    En physique, si on a la direction le temps ou la longueur pendant laquelle cette force s'est exercée,(et sa norme) c'est bon . Avec la vitesse après le choc on peut déterminer tout ça (on choisit le temps d'action de la force)
    Vous n'avez qu'à garder la direction indiquée à l'exercice 9 et ensuite moduler la force .(yaka)
    Un attention particulière en physique aussi à l'équation aux dimensions .
    Apparemment vous n'en avez jamais entendu parler .
    Dans une équation, les termes de gauche doivent être de la même dimension que les termes de droite .
    Il y a 4 dimensions possibles en physique :
    Le temps T (sec), la longueur(mètre) , L la masse M (Kg) , l'intensité de courant I (Ampère) c'est tout .
    Ainsi en se rappelant que F=mg où m est une masse , g une accélération :m/s² cad g=LT-2 la dimension de F est donc M L T-2
    Si vous écrivez F=KV = K L T-1 =M L T -2 K=M T-1 K doit être une masse divisée par un temps .
    Voir ici .
    http://www.ac-nancy-metz.fr/enseign/...dimensions.htm

    Je vous propose ...de garder l'équation fournie, et de moduler V'1 et V'2 avec un coefficient K Avoir ainsi une nouvelle vitesse V"1=KV'1 V"2=KV'1 (K est sans dimension dans ce cas) si K= 0 V1"=0 et V"2=0 .

    Tout dépend de ce que vous voulez faire , en fait d'autres ici sont bien meilleurs que moi en cinématique , le mieux c'est clair c'est estimer que pendant le choc une force agit et pouvoir moduler cette force .
    Avec l'équation 9 que vous avez, si vous faites une collision de face, les 2 objets vont repartir en sens inverse ...
    Il faudrait donner k en fonction de l'angle apparent des 2 objets en sin(n) , ce qui donnerait k=sin(n) c'est au pif, mais ça pourrait peut-être marcher...Il faudrait encore trouver une astuce pour que lorsque n=0 le plus gros objet pousse le + petit ...
    1max2mov

  11. #10
    invitea41845f7

    Re : utilisation de formule dans un moteur physique

    bin dit donc, j'ai bien fait de venir ici, j'y serai pas arrivé tout seul.

    J'ai fait un bac STL chimie donc je pense avoir une logique scientifique, mais en effet, cette histoire de quadri-dimension m'était inconnue, même si je l'ai vue plusieurs fois cité dans mes recherches. Merci pour l'explication! Vue comme ça, c'est sur que K*V ne donnera surement pas une force

    Avec l'équation 9 que vous avez, si vous faites une collision de face, les 2 objets vont repartir en sens inverse ...
    Il faudrait donner k en fonction de l'angle apparent des 2 objets en sin(n) , ce qui donnerait k=sin(n) c'est au pif, mais ça pourrait peut-être marcher...Il faudrait encore trouver une astuce pour que lorsque n=0 le plus gros objet pousse le + petit ...
    J'ai eu la même réflexion, et j'ai pensé qu'il devais existé une autre formule pour cela. Mais quelqu'un ma trouver mieux!!

    http://www.regispetit.com/bil_pra.htm
    (je vous avoue que j'ai posé la question sur un autre forum en même temps qu'ici ^^).

    Tout est la. l'angle d'attaque, les propriétés des matériaux, leur centre de gravité, et même les rotations!

    Par contre, je n'ai pas encore étudier les formules en détail, mais je ne pense pas que je puisse en déduire l'équilibre des objets, c'est a dire par exemple si une planche est posé sur un mure, et que l'on applique une force en un point précis, de qu'elle façons elle va basculer.
    Je ne suis pas encore certain d'avoir besoin de cela mais c'est fort probable par la suite, je vais tenter de magouiller sans, mais je reviendrai vous embêter si je n'y arrive pas tout seul =p.

    merci encore!!

  12. #11
    triall

    Re : utilisation de formule dans un moteur physique

    Si, KV peut donner une force K sera de la dimension MT-1 pas de pb, en physique, les constantes sont quelquefois faites pour ça!

    Pour le billard, ouch, la difficulté c'est qu'en plus il y a une vitesse de rotation, donc une énergie en plus en Jw² le moment d'inertie de la boule J. x w vitesse de rotation ....

    Pour la planche posée sur un mur, c'est encore une autre histoire .J'ai simplement entendu parler de ce problème, qui parait-il, malgré les apparences n'a rien d'évident ...
    D'autres gars sur ce forum sont bien plus capables que moi sur ce sujet ...


    Mais , dîtes moi , qu'est ce qui se meut dans votre programme ?

    Il faudrait que vous essayez cette histoire de k en abs {sin(n)} abs est valeur absolue , histoire que k soit toujours positif ... Ca me semble très plausible , plus ce k serait petit, plus le choc serait inelastique en fait .Avec arrêt brusque des 2 avec choc frontal , ce qui n'est pas plausible pour m1<< m2 par exemple, mais il y doit y avoir moyen d'arranger celà en mettant sin (n+k') et en réglant ce k' petit de manière que sin(n+k') ne s'annule jamais...
    Cordialy !
    1max2mov

  13. #12
    invitea41845f7

    Re : utilisation de formule dans un moteur physique

    Si, KV peut donner une force K sera de la dimension MT-1 pas de pb, en physique, les constantes sont quelquefois faites pour ça!
    Ah ouaiiiii!! Donc pour être sur de comprendre, dans le système, si on a
    V' = K*V, et F = K'*V, k et k' sont deux valeur différente, et pour trouver k', il faudrait faire k/masse ?

    Mais , dîtes moi , qu'est ce qui se meut dans votre programme ?
    Difficile a résumé, mais en gros, c'est pour un jeu de combat au game play très spécial...
    Les différentes partie des personnages peuvent ce séparer si l'impact est trop forte. Ceux si son capable de ce mouvoir avec une aisance surréaliste, principalement via des bond qui peuvent allez plus aux qu'une maison et en s'appuyant sur le décore, selon la force des impulsions que choisie le joueur d'appliquer sur son personnage, via un habile mélange de la souris et du clavier. (Ce doit être intuitif, et le joueur n'a pas a savoir qu'il applique une force de valeur F dans tel sens et tel direction, pour lui, il fait simplement sauté le personnage comme bon lui semble). Donc, pour donné une illusion du réel qui fonctionne (même si les personnage sont de simples assemblages de ronds et de traits), le mieux est d'utiliser les formules qu'on emploie dans la réalité, même si je suis libre d'en faire ce que je veut.

    C'est un projet de longue alêne, il me faudra bien 1ans ou plus pour arriver au début de quelque chose

    Je crois que j'ai réussie a me dépatouillé avec les formule sur le billard. Avec la structure du programme que j'ai actuellement, il est même plus aisé de déterminer des vecteur unitaire entre les centre de gravité et le points d'impact, que de déterminer des angles d'attaque. Je ne vais pas vous les écrire car elle me prenne une page a4 mais je me retrouve avec 8 formule consécutive, sans inconnue.

    Je tente, si je voie que ça donne rien et que ça fait n'importe quoi, je tenterai votre solution. Sinon je posterai le résultat pour vous montrer

  14. #13
    invitee0b658bd

    Re : utilisation de formule dans un moteur physique

    bonjour,
    tu as un certain nombre de bibliotheques logicielles qui s'occupent bien de tous ces problemes
    entre autre
    http://ode.org/
    fred

  15. #14
    triall

    Re : utilisation de formule dans un moteur physique

    Bonjour Splyf
    Vu une autre discussion sur ce forum où existe ce lien très complet, qui je crois ne traite que des chocs élastiques en 2 d, mais pas forcément frontaux.
    http://www.owl-spip.ch/spip.php?article1779
    Cordialy
    1max2mov

Discussions similaires

  1. Utilisation formule
    Par inviteaef34eac dans le forum Mathématiques du supérieur
    Réponses: 11
    Dernier message: 25/08/2009, 16h40
  2. utilisation d'un moteur
    Par invite7f81642e dans le forum Technologies
    Réponses: 3
    Dernier message: 23/04/2009, 20h14
  3. Réponses: 5
    Dernier message: 15/03/2009, 16h10
  4. Conseils utilisation moteur
    Par inviteb9142844 dans le forum TPE / TIPE et autres travaux
    Réponses: 6
    Dernier message: 02/12/2008, 22h02
  5. utilisation du temps en physique
    Par hterrolle dans le forum Physique
    Réponses: 3
    Dernier message: 05/06/2007, 12h47