Rebond par calcul d'angle

SnOOpss Messages postés 571 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 5 décembre 2013 - 4 juin 2006 à 16:28
SnOOpss Messages postés 571 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 5 décembre 2013 - 6 juin 2006 à 17:30
Bonjour je cherche a faire rebondir un objet sur des surfaces mais en calculant avec les angles donc pas avec un truc du genre
if x > 400 dx*=-1;
if x < 10 dx =*-1;

Mais plutot si un objet rentre en collision avec un objet d'angle A1 sous un angle A2 quel est son nouvel angle.

J'ai commencé a me faire une base pour les surfaces planes des cotés mais c'est un algo bourré de tests et de corrections (fait a tatons) donc horrible et je commence a peter un cable pour les surfaces inclinées et il me reste les collisions entre 2 objets en mouvement.

Si quelqu'un a un exemple ou le titre du cours de meca que je cherche sous google (j'ai cherché avec les verteurs mais generalement c'est plus avec des coordonnées x y que les angles et je trouve chiant d avoir a les reconvertir en coordonnées rectangulaire pour reobtenir un angle)

9 réponses

luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
4 juin 2006 à 16:51
Faut pas utiliser les angles, mais seulement vecteurs et produits scalaires.
0
SnOOpss Messages postés 571 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 5 décembre 2013
4 juin 2006 à 18:01
En fait j'ai trouvé pour les surfaces planes donc c'est possible avec les angles voila ma fonction (trouvé a tatons)


double changAng(double angle0,double angle) {

    double A = 2* angle0 - angle;

    if (A < 0) { A = A + 2 * PI ; }

    return A;

}


On fournis angle0 qui represente l'angle de la surface (0 pour un plan
horizontal, 90 pour un plan vertical, etc ...) et l'angle actuel. La
fonction retourne le nouvel angle de rebond.


Par contre il me manque pour les objet en mouvement et la je ne sais pas si c'est possible sans passer par les scalaires ??
0
ben92600 Messages postés 56 Date d'inscription dimanche 13 novembre 2005 Statut Membre Dernière intervention 11 juillet 2006
4 juin 2006 à 18:55
sa resemble vaguement a la formule de la refraction pour le raycasting. donc comme c'est un sujet qui est pas mal expliquer sur le net tu peu regarder par la ;)
0
Galmiza Messages postés 573 Date d'inscription samedi 16 novembre 2002 Statut Membre Dernière intervention 9 avril 2008 1
5 juin 2006 à 00:07
Bah, pour l'objet1, tu inverses la composante v de la vitesse relative de l'objet1/objet2 dans la base (u,v) où v est la normale à la surface de collision.
Et voilà ! En une phrase. Sympa nan ?
Faut lire la phrase à l'envers pour comprendre.
Idem pour l'objet2 (pas la peine de recalculer le base de passage globale -> (u,v)).
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
SnOOpss Messages postés 571 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 5 décembre 2013
5 juin 2006 à 07:21
Et il faut pas prendre en compte les forces ?

Si un objet a plus d'energie que l'autre qu'est ce qui se passe, si un
objet en mouvement entre en collision avec un objet statique il
s'arrette et transmet son energie au corps statique et c'est le corps2
qui se deplace apres.

J'ai vu une source de simulation de billard sur ce site mais c'est des
formule de "precalcul" pour calculer les futures collisions et comme
moi je fait ca en temps reel je bloque encore.
0
SnOOpss Messages postés 571 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 5 décembre 2013
5 juin 2006 à 07:24
Désolé ,je viens de relire ton post en faisant plus attention et ca
pourrait m'interesser tu aurais pas les formules de math pour

v est la normale à la surface de collision ?

et la vitesse relative de l'objet1/objet2 ?
0
Galmiza Messages postés 573 Date d'inscription samedi 16 novembre 2002 Statut Membre Dernière intervention 9 avril 2008 1
5 juin 2006 à 10:39
Déja fais-tu de la 3D ou de la 2D ?
Tes solides en mouvement peuvent-ils avoir des formes quelconques ?
Peuvent-ils tourner sur eux-mêmes ? (ça parait con mais ça complique sensiblement les calculs)
En gros quelles hypothèses veux-tu faire ?
Des techniques de calculs physiques, il y en un paquet !
0
SnOOpss Messages postés 571 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 5 décembre 2013
5 juin 2006 à 20:11
C'est en 2D, je refait le jeu de globulos en c++ jouable en local
(facilement trouvable sur google en flash jouable sur leur serveur).

Pour simplifier les "globule" ne sont (mathematiquement) que des
cercles et pour le moment leurs deplacements se font a partir d'un
angle et d'un vecteur vitesse (c'est fonction du temps donc je pense
pas qu'on puisse appeller ca energie) et une constante pour les pertes
par frottements.


En fait je sais meme pas si je m'y prend correctement, ceux que voit bossent avec les moments et les energies.


Deja je fait baisser une vitesse avec une force (frottement qui diminue
vitesse) et physiquement c'est pas trop realiste c'est plutot du
bricolage.
0
SnOOpss Messages postés 571 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 5 décembre 2013
6 juin 2006 à 17:30
Pour ceux qui cherchent aussi je suis tombé sur

http://forum.games-creators.org/archive/index.php/t-2551.html

mais surtout sur

http://www.planete-sciences.org/robot/wikibot/index.php/Collision ( tres interessant)
0
Rejoignez-nous