Bonjour,
J'ai pas mal de mal à créer un algorithme de detection de collission valable ...
Voici le problème :
Je voudrais savoir si un element peut etre placé à un endroit sans rentrer en collision avec les elements déjà placé.
Pour celà je dispose les dimenssions sur l'axe X, Y et Z de chaque élément ansi que les coordonnées du centre de la pièce sur les axe X, Y ainsi que Z.
J'ai tout dabord pensé à celà :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 code = 0, axe : entier; point[4] : decimal; Pour les 3 axes { point[0] = Coordonnée la plus à gauche de la piece a tester sur l'axe actif point[1] = Coordonnée la plus à droite de la piece a tester sur l'axe de la piece a tester sur l 'axe actif Pour toutes les pieces déjà placer { point[2] = Coordonnée la plus à gauche de la piece déjà placé active sur l'axe actif point[3] = Coordonnée la plus à gauche de la pieve déjà placé active sur l'axe actif Pour chaque points espacer de 0.5 de la piece a placer { Si le point est dans les limites de la piece active declarer une collision sur l axe } } }
Mais le problème, c'est qu'avec cette algo, je ne detecte pas vraiment les collisions mais plutot les similitudes et je pense que pour une collision, il doit avoir 3 similitudes sur un point.
Mais même si je compte les similitudes par point, est-ce que je detecterai rellement toutes les collissions possibles ?
Merci pour toute aide apporté, j'ai vraiment du mal à me l'imaginer, et faire un dessin avec de la 3D, je n'y parviens pas non plus
Partager