Programmation d'un moteur physique

Bonjour,
J'essaie de programmer un moteur physique dans lequel je mets en jeu des collisions.
J'ai alors réussi à coder la collision (2D) entre 2 cercles mais lorsque je souhaite programmer la collision entre ligne et cercle, ça coince.
Le problème vient du fait que le mouvement du cercle n'est pas "continu" mais discret (image par seconde).
J'ai programmé la collision cercle ligne en calculant la distance entre l'extrémité du cercle et le point de la droite "le plus proche" de ce cercle.
Lorsque le cercle arrive avec une vitesse élevée, avec ce problème d'image par seconde, le cercle vient à traverser la ligne (environ 1/10 du cercle pénètre la ligne) et cela enclenche alors une autre collision dans le sens inverse (avec ce 1/10 de cercle qui pénètre la ligne) ce qui fausse la collision.
Je fais donc appel à vous pour savoir s'il existe un moyen assez simple de mettre fin à ce problème de discontinuité du mouvement.
Merci d'avance.

Réponses

  • J’ai vu passer un article sur ce sujet dans un Linux magazine.
    Algebraic symbols are used when you do not know what you are talking about.
            -- Schnoebelen, Philippe
  • D'accord merci bien.
  • Tu veux programmer quoi à la fin ? En tout généralité il faut savoir approximer la solution de $f(x) = 0$ pour n'importe quel type de fonction $f$, et s'exposer à des instabilités qu'il faut résoudre au cas par cas (imagine le bordel quand on modélise le premier coup au billard sur les boules toutes collées ensembles). Mais en 2d avec certains types de géométrie et de frottements, ça se simplifie grandement.
  • Bonjour reuns,
    Mon programme n'a pas de finalité mais je rajoute de nouveaux concepts dans le moteur au fur et à mesure du temps, et là je voulais rajouter les collisions cercle-ligne.
    Je sais comment approximer la solution de cette équation mais comment établir un lien entre $f(x)=0$ et la collision?
  • $f(t)$ sera la distance minimale entre ton cercle et ta ligne au temps $t$. En général le cercle et la ligne peuvent bouger suivant un peu n'importe quelle équation (les frottements..)
    mais si on se limite aux frottements statiques alors le mouvement du cercle et de la ligne sont des fonctions du second degré (par morceaux), et la distance au carré est une fonction du quatrième degré (par morceaux)
Connectez-vous ou Inscrivez-vous pour répondre.