#1 

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


#2 

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


#3 

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


#4 

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


#5 

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


#6 

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


#7 

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


#8 

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


#9 

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


#10 

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


#11 

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


#12 

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


Options Liens officiels Caractéristiques Statistiques Communauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1440 sujets
11337 messages
Dernier membre inscrit: Saidov17
153 invités en ligne
membre en ligne: -
RSS Feed