20-05-2008 13:27:51
- littleben
- Membres
- Date d'inscription:
- Messages: 97
- IP: 78.115.113.176
- Courriel
Bonjour.
Je cherche à simuler la mise en place de capteur à ultrason, c'est à dire que je voudrais savoir s'il y a un obstacle autour de mon objet principal (qui se déplace), à moins de 6 mètres, et surtout je ve connaitre l'endroit d'où il vient (obstacle à droite, gauche, devant, derrière, en haut, ou en bas).
Merci pour vos suggestions.
Hors ligne
23-05-2008 23:53:36
- bestben
- Membres
- Date d'inscription:
- Messages: 133
- IP: 86.69.49.36
- Courriel
Une idée comme ça en vrac :
Le truc si tu fait des ultrasons c'est que ça part dans toutes les directions,
donc essai de faire une sorte de boule de 6m de rayon et tu détecte si il y a collision avec un objet, si c'est le cas tu récupères les coordonnées de l'objet avec lequel tu est en collision et pour savoir si il est à droite etc ... tu regardes selon les axes
par exemple si il est en x : 5 et z : -2 ton objet sera derrière à droite
Après je suis pas sur que ce soit complètement réalisable
Hors ligne
29-05-2008 10:28:56
- littleben
- Membres
- Date d'inscription:
- Messages: 97
- IP: 88.139.197.131
- Courriel
Merci pour ces indications. C'est ce que je pensais faire. Le seul problème, c'est que je ne sais pas comment connaitre les coordonnées de l'objet percuté. Y a t-il moyen de les récupérer par la classe ITriangleSelector ou autre ?
Merci pour vos réponses.
Hors ligne
29-05-2008 10:53:59
- bestben
- Membres
- Date d'inscription:
- Messages: 133
- IP: 79.86.232.203
- Courriel
A mon avis il faut que tu vois du côté de getCollisionPoint(),
mais le problème c'est que tu peut utiliser juste des lignes donc tu pourras pas faire le cercle parce que sa te prendra trop de cpu à mon avis
Hors ligne
29-05-2008 12:40:21
- littleben
- Membres
- Date d'inscription:
- Messages: 97
- IP: 88.139.197.131
- Courriel
Qu'est-ce que tu veux dire par des lignes ?
Hors ligne
29-05-2008 14:46:22
- bestben
- Membres
- Date d'inscription:
- Messages: 133
- IP: 79.86.232.203
- Courriel
Par lignes je veut dire rayons, les paramètres de getCollisionPoint() sont
getCollisionPoint (const core::line3d< f32 > & ray,
ITriangleSelector * selector,
core::vector3df & outCollisionPoint,
core::triangle3df & outTriangle
)en gros c'est une sorte de "rayon" qui par jusqu'à ce qu'il entre en collision avec quelque chose, et après ça te sort la position de la collision et le triangle touché
par contre ton "rayon" il te faut une position de début et de fin,
donc pour ta position de début tu peut mettre celle de ta cam et position de fin t'en met une assez haute
Hors ligne
29-05-2008 15:13:58
- littleben
- Membres
- Date d'inscription:
- Messages: 97
- IP: 88.140.2.129
- Courriel
Peux-tu me dire quel rayon sa ferait si je veux 2 mètre : en fait j'aimerai savoir la valeur en nombre flotant.
Merci.
Hors ligne
29-05-2008 17:02:59
- bestben
- Membres
- Date d'inscription:
- Messages: 133
- IP: 79.86.232.203
- Courriel
en faites sa dépend de l'échelle de ton monde
Hors ligne
30-05-2008 07:53:12
- littleben
- Membres
- Date d'inscription:
- Messages: 97
- IP: 88.140.2.129
- Courriel
En admettant que je sois à l'échelle de base d'Irrlicht ? (il me semble 1 mètre = 50.0f) .
Hors ligne
30-05-2008 07:55:40
- littleben
- Membres
- Date d'inscription:
- Messages: 97
- IP: 88.140.2.129
- Courriel
J'ai essayé 100.0f mais sa semble trop grand
Hors ligne
30-05-2008 08:04:41
- littleben
- Membres
- Date d'inscription:
- Messages: 97
- IP: 88.140.2.129
- Courriel
J'ai un peu regardé ce que tu m'a dis, mais ces histoires de lignes sa m'arrange pas du tout. Y'aurait pas une autre soluce ?
C'est pas possible là. Déception totale.
Hors ligne
30-05-2008 15:47:47
- bestben
- Membres
- Date d'inscription:
- Messages: 133
- IP: 86.69.75.74
- Courriel
A priori moi j'ai pas vu d'autres soluces,
sinon essai d'aller voir le tuto irrlicht sur les collision c'est expliquer pour les lignes
Hors ligne



