salut,
est-ce que quelqu'un connait un manière efficace de tester si un point se trouve au dessus d'un triangle?
merci
salut,
est-ce que quelqu'un connait un manière efficace de tester si un point se trouve au dessus d'un triangle?
merci
Envoyé par NailMaker
dans l'espace ?
dans le plan ?
quelles données pour ton point ? pour ton triangle ?
etc.
Bien floue cette question...
On ne sait rien du contexte, on ignore les hypothèses...
Ton triangle, il est dans une image je suppose ?
Qu'entends-tu par "au-dessus" ?
Si tu connais les sommets du triangle, et que l'on parle en axe Oxy, alors tester s'il est au-dessus, c'est tester la valeur de y de chacun des sommets avec le point en question.
Salut,
Il faut être plus prècis. Que signifie au dessus ?
Et si tu dois tester l'inclusion du point dans le triangle, clique ici
Salut,
contexte
j'ai une surface courbe en 3D composée de triangles. J'ai un point dans l'espace. Je veux savoir si le point est au dessus d'un triangle.
info suplémentaire
Ma surface vient d'un solide fait avec un logiciel de CAD et exportée en fichier STL. j'ai donc les coordonnées des sommets et la normal orienté vers l'extérieur du solide pour chaque triangle.
au dessus: le terme employé normalement, qqc comme : si on déplace le triangle dans le sens de la normal on va croiser le point
pour plus d'info sur mon projet
http://www.developpez.net/forums/sho...d.php?t=155794
j'ai trouvé des algo très efficace pour savoir si un point est à l'intérieur d'un triangle en 2D, je veux savoir s'il en existe aussi en 3D
merci
oups ... CAO pas CAD
Re,
Il te suffit de faire le produit scalaire entre le vecteur formé par un sommet et le point que tu test et le vecteur normal. Selon le signe tu sais si il est au dessus.
merci c'est déjà un bon truc, mais je crois que je veux plus que ça.
c'est de ma faute, ma question est encore floue.
je cherche a trouver la distance minimum entre ma surface composée de triangles et mon point dans l'espace 3D. Après avoir balayer chacun des sommets des triangles, j'ai trouvé celui qui était le plus près de mon point.
voilà le problème: ce sommet est partagé par plusieurs triangles et je veux maintenant savoir sur quel triangle je dois projeter mon point pour obtenir la distance minimum.
C'est pour cette raison que je voulais savoir si le point était au dessus, pour trouver la distance minimum.
peut -être que je ne procède pas de la bonne méthode?
salut,
tu as plusieurs cas en fait :
- projection sur un triangle
- projection sur une arete
- projection sur un sommet
Une psb est de projeter le point sur le plan associe a un triangle, puis de tester si le point est dans le triangle (en reprenant les algos du 2D).
Si ce n'est pas le cas, on projete sur les cotes du triangles.
Si on ne se projette pas sur les cotes, alors le point le plus proche est un des sommets du triangle.
A partir de ca on peut calculer la distance minimum du triangle 3D au point.
En iterant sur les triangles, tu trouve le (ou les) plus proches triangles.
en esperant que ca aide ?
A+
Ce n'est pas parce qu'un point est "au dessus" d'un triangle qu'il en est proche. Il peut très bien être au dessus d'un (ou plusieurs, d'ailleurs) triangle très éloigné, il suffit que le triangle soit bien orienté.Envoyé par NailMaker
Salut,
après tout vos commentaires voici ce que je vais faire:
une première passe pour trouver le sommet le plus proche de mon point. Je vais projeter le point en direction de la normal sur chacun des triangles qui possède ce sommet. Trouvez le point d'intersection avec le plan du triangle(voir: http://www.developpez.net/forums/sho...ht=plan+droite), puis tester si le point est a l'intérieur du triangle.
Pour le test en 2D, j'utilise une approche vectoriel. Je fais le produit vectoriel entre la directrice d'un des côtés et le vecteur qui va du sommet au point d'intersection. de cette manière je sais de quel côté de la droite se trouve le point. Je recommence pour les deux autres côté.
si j'ai plus d'un triangle je vais prendre la distance minimum
si je n'ai aucun triangle je vais projeter sur une arête.
merci à tous!
Arrêtez moi si je dit une bêtise, mais le triangle le plus proche d'un point n'est pas forcément lié au sommet le plus proche du point. Comme il est difficile de faire des schèmas en 3D je joins un exemple en 2D avec des segments :Envoyé par NailMaker
Salut,
je suis d'accord : si l'on prend tous les cas possibles, l'hypothèse que le sommet le plus proche mène au triangle le plus proche n'est pas valide.
Cependant, je travail avec une surface courbe (qui ressemble à
une aile d'avion lègèrement tordue), comme mes points sont distribués tout le tour de cette surface, je crois que je peux rejeter le scenario où le point est pris en sandwich.
a moins que je dise moi aussi une bêtise![]()
merci pour la remarque
Bonjour à tous,
j'ai trouvé un article qui répond d'une manière très précise à ma question. Autant pour du 2D que du 3D. Il y a un code source en plus!
alors je tenais à vous le faire partager.
http://www.ddj.com/184404201
bonne lecture![]()
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager