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
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
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
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
Qu'est-ce que tu veux dire par des lignes ?
Hors ligne
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
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
en faites sa dépend de l'échelle de ton monde
Hors ligne
En admettant que je sois à l'échelle de base d'Irrlicht ? (il me semble 1 mètre = 50.0f) .
Hors ligne
J'ai essayé 100.0f mais sa semble trop grand
Hors ligne
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
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