Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1706 connectés 

  FORUM HardWare.fr
  Programmation

  [Math] Comment savoir si un point se trouve dans un triangle?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Math] Comment savoir si un point se trouve dans un triangle?

n°172393
Alload
Posté le 06-07-2002 à 23:46:49  profilanswer
 

J'ai besoin de savoir si un triangle PLEIN intersecte une sphère PLEINE. Afin de faire ça, je me suis rappelé mes exos de maths de Terminale où l'on déterminait la projection orthogonale d'un point sur un plan.
 
Comme nous savons que le chemin le plus court entre le triangle et le centre de la sphère passe par une droite colinéaire à un vecteur normal au plan que forme le triangle, nous pouvons calculer une équation paramétrique de cette droite:
 
vecteur d = centre de la sphère + k * une normale du triangle
 
Ensuite nous calculons l'équation du plan que forme le triangle, et il est ensuite trivial de déterminer les coordonnées du point d'intersection de la droite et du plan.
 
Par contre, maintenant ça se complique vu que je n'ai pas de cours là-dessus: comment peut-on savoir si le point d'intersection se trouve à l'intérieur du triangle ou non?


Message édité par Alload le 07-07-2002 à 12:24:35
mood
Publicité
Posté le 06-07-2002 à 23:46:49  profilanswer
 

n°172404
airseb
Posté le 07-07-2002 à 02:47:56  profilanswer
 

dans le red book, annexe F, ils parlent de l'intersection d'un point et d'un plan, ça te convient ?


Message édité par airseb le 07-07-2002 à 02:48:17
n°172408
Alload
Posté le 07-07-2002 à 09:17:30  profilanswer
 

En fait, quand j'y ai réfléchi hier soir avant de dormir je me suis rendu compte que ma méthode ne marchait pas du tout: même si le point du plan que forme le triangle se trouve à l'intérieur de la sphère, cela ne veut pas dire que le triangle s'y trouve.
 
Je vais chercher un peu sur le net.

n°172414
slvn
Posté le 07-07-2002 à 11:13:47  profilanswer
 

quan "tu veux savoir si ton trianlge intersect une sphere", tu parle d'un triangle plein ou pas plein ?

n°172415
Alload
Posté le 07-07-2002 à 11:14:24  profilanswer
 

slvn a écrit a écrit :

quan "tu veux savoir si ton trianlge intersect une sphere", tu parle d'un triangle plein ou pas plein ?



Un triangle plein.

n°172416
Xavier_OM
Monarchiste régicide (fr quoi)
Posté le 07-07-2002 à 11:17:37  profilanswer
 

"Comme nous savons que le chemin le plus court entre le triangle et le centre de la sphère passe par une droite colinéaire à un vecteur normal au plan que forme le triangle"
 
pas forcément, ca dépend de où se trouve ta sphère. Si on imagine qu'elle est "en dessous" ou "au dessus d'un triangle "vertical" (c'est affreusement non mathématique mais je pense être clair), et bien le "chemin le plus court" passe par une droite vectorielle apartenant au plan engendré par le triangle. Elle est donc orthogonal au vecteur normal au triangle.
 
Pour déterminer si un point appartient à un triangle, il faut vérifier trois inégalités par rapport aux trois cotés.
Ex pour un triangle equilatéral ABC, A sommet en haut, B-C la base en bas, de gauche à droite : il faut que les coordonnées du point vérifient : > equation_de_droite_de_BC et <equation_de_droite_de_AB et <equation_de_droite_de_AC


---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.
n°172417
Alload
Posté le 07-07-2002 à 11:23:37  profilanswer
 

Xavier_OM > d'accord pour tes inégalités, mais c'est pas faisable car il y a une infinité de point à tester à l'intérieur de la sphère. Non?

n°172418
slvn
Posté le 07-07-2002 à 11:27:07  profilanswer
 

a ta place, je commencerai  pas faire :
 
intersection de la sphere et du plan contenant le triange.
(calcul de la distance centre_sphere & plan )
 
et s il y a intersection,  t es ramené a un pb en 2 D.

n°172422
Alload
Posté le 07-07-2002 à 11:29:53  profilanswer
 

slvn > donc on teste l'intersection du plan que forme le triangle et de la sphère.
 
Si pas d'intersection -> le triangle ne se trouve pas dans la sphère.
 
Si intersection -> on peut se place dans le plan que forme le triangle, on peut trouver le cercle que décrit la sphère sur ce plan. Mais ensuite tester le triangle et ce cercle redonne le même problème qu'avec la sphère, à savoir que le test des trois sommets de suffit pas.

n°172423
Xavier_OM
Monarchiste régicide (fr quoi)
Posté le 07-07-2002 à 11:33:28  profilanswer
 

c'est vrai que pour le coup c'est pas évident. En maths c'est simple, on cherche l'intersection et puis c'est bon, mais pour programmer une procédure de test je sais pas trop (je suis ni prof de maths ni programmeur)
 
une fois en 2D, ton cercle peut etre :
soit dans le triangle complétement
soit tangeant a un ou plusieur coté
soit à l'exterieur mais secant a un ou plusieurs cote
soit totalement a coté.
 
Donc il faut tester la position du centre du cercle par rapport au centre du triangle, puis voir avec le rayon de ce cercle


Message édité par Xavier_OM le 07-07-2002 à 11:36:00

---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.
mood
Publicité
Posté le 07-07-2002 à 11:33:28  profilanswer
 

n°172425
Alload
Posté le 07-07-2002 à 11:35:07  profilanswer
 

Xavier_OM a écrit a écrit :

c'est vrai que pour le coup c'est pas évident. En maths c'est simple, on cherche l'intersection et puis c'est bon, mais pour programmer une procédure de test je sais pas trop (je suis ni prof de maths ni programmeur)



Tu connais un moyen de chercher l'intersection en math pure? Tu pourrais donner la méthode?

n°172427
Xavier_OM
Monarchiste régicide (fr quoi)
Posté le 07-07-2002 à 11:39:10  profilanswer
 

Alload a écrit a écrit :

Tu connais un moyen de chercher l'intersection en math pure? Tu pourrais donner la méthode?




 
ben mathématiquement pour une sphère on chercherait les points du plan engendré par le triangle qui vérifient l'équation de la sphère. Pour une sphère pleine ca doit exister aussi je pense.


---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.
n°172428
slvn
Posté le 07-07-2002 à 11:42:05  profilanswer
 

dnas le plan, disque / triangle, c est deja + simple,  
 
tu peux commencer par regarder si les droites qui portent les segments, coupent le cercle.
ensuite si les segment eux meme coupent le cercle.(-> la tu peut determiner les pts d intersection)
 
enfin tu termine par une disjonction de cas pour determiner l'intersection totale.


Message édité par slvn le 07-07-2002 à 11:42:42
n°172431
Caedes
Posté le 07-07-2002 à 11:50:45  profilanswer
 

Alload a écrit a écrit :

slvn > donc on teste l'intersection du plan que forme le triangle et de la sphère.
 
Si pas d'intersection -> le triangle ne se trouve pas dans la sphère.
 
Si intersection -> on peut se place dans le plan que forme le triangle, on peut trouver le cercle que décrit la sphère sur ce plan. Mais ensuite tester le triangle et ce cercle redonne le même problème qu'avec la sphère, à savoir que le test des trois sommets de suffit pas.




 
 
Je ne suis pas certain que le résultat en 2D donne une intersection entre un triangle et un cercle. Plutot entre un triangle et une ellipse.
 
Pose ta question là bas :
 
http://www.forum.math.ulg.ac.be/cg [...] ea=Gomtrie

n°172433
slvn
Posté le 07-07-2002 à 11:55:35  profilanswer
 

si si je t assure, c est bien un cercle ;)

n°172434
Caedes
Posté le 07-07-2002 à 11:57:53  profilanswer
 

slvn a écrit a écrit :

si si je t assure, c est bien un cercle ;)




 
Si le plan passe par le centre de la sphère oui, Si un vecteur normal au plan engendré par le triangle passe par le ceontre du cercle oui , mais dans un cas quelconque, hmmm...
 
(edit : faute d'écriture)


Message édité par Caedes le 07-07-2002 à 11:58:24
n°172435
slvn
Posté le 07-07-2002 à 12:00:34  profilanswer
 

y pas de cas qcq,
car y a toujours un vecteur normal au plan engendré par le triangle qui passe par le centre du cercle

n°172436
Caedes
Posté le 07-07-2002 à 12:00:58  profilanswer
 

Caedes a écrit a écrit :

 
 
Si le plan passe par le centre de la sphère oui, Si un vecteur normal au plan engendré par le triangle passe par le ceontre du cercle oui , mais dans un cas quelconque, hmmm...
 
(edit : faute d'écriture)




 
Apres plus de réflexion ca sera toujours le cas, autant pour moi...  :jap:
 
 
edit : et en plus je suis grillé... :D


Message édité par Caedes le 07-07-2002 à 12:01:41
n°172437
slvn
Posté le 07-07-2002 à 12:02:51  profilanswer
 

héhé c vrai que c trompeur quand meme :d

n°172438
Xavier_OM
Monarchiste régicide (fr quoi)
Posté le 07-07-2002 à 12:04:37  profilanswer
 

sinon newsgroup ; fr.sci.maths  ;)  


---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.
n°172444
Alload
Posté le 07-07-2002 à 12:25:15  profilanswer
 

J'ai fais un édit du premier post pour spécifier que le triangle et la sphère sont pleins.

n°172465
slvn
Posté le 07-07-2002 à 14:31:05  profilanswer
 

t as tenté ce que je te proposait comme methode ?!
 
3D -> 2D -> droite -> segment -> disjonction de cas

n°172467
Alload
Posté le 07-07-2002 à 14:37:29  profilanswer
 

slvn a écrit a écrit :

t as tenté ce que je te proposait comme methode ?!
 
3D -> 2D -> droite -> segment -> disjonction de cas  



Ca ne marche pas si l'on considère que la sphère est pleine, oubien?

n°172511
Alload
Posté le 07-07-2002 à 15:54:16  profilanswer
 

Je viens de trouver dans un de mes bouquins de prog graphique un paragraphe qui dit comment calculer la distance entre un point et un triangle. Si j'arrive à comprend alors ce sera facile de savoir si le triangle est dans la sphère ou non.
 
Je vous tiens au courant, mais va déjà falloir que je comprenne le bouquin :D

n°172512
slvn
Posté le 07-07-2002 à 15:56:13  profilanswer
 

cune fois que t intersect sphere et plan,
t obtient un disque et un trianlge (les deux pleins)
 
et la tu traite les intersections cote du triangle/disque
 au final, t aura un "bout de plan qui risque de contenir des parties "circulaire" de d'autre rectiligne..."
 
 
 
simplem question, tu fais quoi comme truc pour avoir besoin de calculer ca ??

n°172518
Alload
Posté le 07-07-2002 à 16:12:55  profilanswer
 

Je fais ça pour savoir quels triangles d'une scène 3D sont dans le champ d'action d'une lumière ponctuelle.

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [Math] Comment savoir si un point se trouve dans un triangle?

 

Sujets relatifs
[Math] Comment calculer la racine carrée d'un nombre ?[Erreur à l'execution] VC ne trouve pas le point d'entrée dans libcomn
[VB] Comment savoir ou se trouve une erreur ...[HS] IUT Info comment savoir si on aura le niveau ?
[PHP] savoir si une fonction existe[php] savoir par quoi commence une chaine
[PHP/Mysql] nb de connecté sur un site: savoir le recordeuh.. désolé, G cherché mais G pas trouvé.. BdD d'images sous Access
Plus de sujets relatifs à : [Math] Comment savoir si un point se trouve dans un triangle?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR