#0 

20-05-2008 15:27:51

littleben
Membre
Date d'inscription: 14-04-2008
Messages: 97

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


#1 

24-05-2008 01:53:36

bestben
Abonné
Date d'inscription: 20-10-2007
Messages: 133

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


#2 

29-05-2008 12:28:56

littleben
Membre
Date d'inscription: 14-04-2008
Messages: 97

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


#3 

29-05-2008 12:53:59

bestben
Abonné
Date d'inscription: 20-10-2007
Messages: 133

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


#4 

29-05-2008 14:40:21

littleben
Membre
Date d'inscription: 14-04-2008
Messages: 97

Qu'est-ce que tu veux dire par des lignes ?

Hors ligne


#5 

29-05-2008 16:46:22

bestben
Abonné
Date d'inscription: 20-10-2007
Messages: 133

Par lignes je veut dire rayons, les paramètres de getCollisionPoint() sont

Code:

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


#6 

29-05-2008 17:13:58

littleben
Membre
Date d'inscription: 14-04-2008
Messages: 97

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


#7 

29-05-2008 19:02:59

bestben
Abonné
Date d'inscription: 20-10-2007
Messages: 133

en faites sa dépend de l'échelle de ton monde

Hors ligne


#8 

30-05-2008 09:53:12

littleben
Membre
Date d'inscription: 14-04-2008
Messages: 97

En admettant que je sois à l'échelle de base d'Irrlicht ?   (il me semble 1 mètre = 50.0f) .

Hors ligne


#9 

30-05-2008 09:55:40

littleben
Membre
Date d'inscription: 14-04-2008
Messages: 97

J'ai essayé 100.0f mais sa semble trop grand

Hors ligne


#10 

30-05-2008 10:04:41

littleben
Membre
Date d'inscription: 14-04-2008
Messages: 97

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


#11 

30-05-2008 17:47:47

bestben
Abonné
Date d'inscription: 20-10-2007
Messages: 133

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


Options Liens officiels Caractéristiques Statistiques Communauté
Corrections
irrlicht
irrklang
irredit
irrxml
xhtml 1.0
css 2.1
Propulsé par FluxBB
Traduit par FluxBB.fr
883 membres
1429 sujets
11121 messages
Dernier membre inscrit: Saidov17
122 invités en ligne
Aucun membre connecté
RSS Feed