Bonjour,
Comme le laisse entendre le titre de ce post, mon problème est comment concevoir "logiquement" le mouvements de cercles "solides", c'est à dire ne pouvant se supersposer, dans un espace 2D.
Tester une intersection de deux cercles est simple a réaliser étant donné qu'il faut juste tester que la distance entre les centres des deux cercles considérés ne soit pas inferieur à la somme des deux rayons.
Mon problème n'est pas de calculer si il y a intersection mais plutot de comprendre comment cela rentre dans un algorithme de mouvement.
Je possede des cercles Ci caracterisés par leur deplacement tour-à-tour di, je calcule les di en fonction des contraintes que je souhaite mais après cela bloque... Le methode la plus simple serait de déplacerles cercles "un par un", en considerant que un seul bouge alors que les autres sont fixes... Cela est en effet plus simple à coder et ne doit pas etre visible si on prends des di suffisement petits mais c'est moins proches de la réalité. Ainsi j'aimerais deplacer chaque cercle en considerant que tous les autres bouges mais la je n'arrive pas à concevoir comment il faut faire..., il faudrait decomposer mes di en "ddi", puis avancer ddi par ddi en utilisant la première methode.
Mon problème est du au fait des collisions mais di risquent de changer... Comment cela est programmé généralement?
On pourrait aussi ne pas modifier les di mais en gros tester a chaque tour :
si collisions ->di du au rebond
sinon di normal sans post-test de collisions...
Cependant cette methode implique que mes cercles sont parfois collisés et si jamais mes di deviennent trop grand il se pourrait que des cercles se traversent sans problème...
En fait ce que je voudrais c'est éviter de devoir faire le test pour chaque cercle avec tous les autres cercles (soit n² tests) mais je ne vois pas comment faire autrement.
J'imagine que si on est habitué à gérer le déplacement d'objet mon problème doit etre trivial, mais moi je seche...
Si quelqu'un peut peut me donner des éléments de reponse, un debut de résolution ou des conseils, je lui en serait res reconnaissant.
D'avance merci
Partager