Detecter collisions ds un monde en 3d

cs_mat74 Messages postés 241 Date d'inscription dimanche 10 août 2003 Statut Membre Dernière intervention 16 juin 2010 - 10 févr. 2005 à 12:54
zoom1984 Messages postés 17 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 26 février 2005 - 22 févr. 2005 à 05:03
salut a ts

voila je travail en ce momment sur un projet de monde en 3d .
je suis en train d'essayer de détecter les collisions .
j'ai deja reussi à gerer tout sa en 2d , cad negliger z. Mais j'aimerais pouvoir gérer les collisions avec le sol et le plafond. je pourrais ainsi faire plusieurs étages ds mon monde.
il faudrait donc que j'arrive a détecter les collisions entre la camera ( que je considere comme un point ) et les murs que je considere comme des plans.
j'ai stocker ds une liste 3 points appartenant a chaque mur.
Mais je n'arrive pas trouver l'équation du plan qui passe par ces 3 points.

p1(x1,y1,z1)
p2(x2,y2,z2)
p3(x3,y3,z3)

je sais que :
x1*a+y1*b+z1*c+d = 0
x2*a+y2*b+z2*c+d = 0
x3*a+y3*b+z3*c+d = 0

mais comment je peux resoudre cela ?

si qq1 a une autre solution plus simple je suis preneur

merci d'avance
@+

2 réponses

thanos57 Messages postés 14 Date d'inscription lundi 20 décembre 2004 Statut Membre Dernière intervention 18 mars 2005
10 févr. 2005 à 19:54
il faut ke tu regarde pas rapport seulement au plan ou tu te trouve par
exemple , ben sur le plan X-Y , tu di ke le point d origine est z = 3 ,
et ben si ta camera arrive a n'importe kel point mé donc z = 3 , ben y
a collision

ensuite tu fait sur le plan X-Z et Y-Z et tu peu faire un cube
0
zoom1984 Messages postés 17 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 26 février 2005
22 févr. 2005 à 05:03
plan défini par 3 point p1,p2,p3

tu cherches la distance de point à ce plan



normale_au_plan = produit_vectoriel(p2-p1,p3-p1);

normalise(normale_au_plan);

v = point - p1; // ou p2 ou p3

distance = produit_scalaire(normale_au_plan,v);
0
Rejoignez-nous