IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

[3D] Triangles


Sujet :

Algorithmes et structures de données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    mars 2002
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mars 2002
    Messages : 17
    Points : 15
    Points
    15
    Par défaut [3D] Triangles
    Voila, j'ai deux triangles dans l'espace, et je voudrais savoir qui est devant l'autre par rapport a une camera dans l'espace ...

    Merci d'avance,

    Frederic
    Delphi 6 Win 98

  2. #2
    Futur Membre du Club
    Inscrit en
    juillet 2002
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : juillet 2002
    Messages : 9
    Points : 9
    Points
    9
    Par défaut
    J'ai jamais travaille sur un algorithme relatif au 3D donc ma reponse n'est peut ertre pas adequate. Cependant je pense qu'a chaque point P de ton espace st associees 3 coordonnees (Px,Py,Pz). Dans ces conditions si Z represente l'axe de ta camera alors le 6-uplet (P1z,P2z,P3z,P4z,P5z,P6z ) peut etre util. En effet selon l'orientation de la camera, le triangle auquel appartien Min(P1z,P2z,P3z,P4z,P5z,P6z ) repectivement Max(P1z,P2z,P3z,P4z,P5z,P6z ) est le triangle devant (rep derriere ) l'autre. C'est une maniere de voir le probleme. On peut aussi cosiderderer les cotes de chaque triangle et leur associer une moyenn par rapport a Z puis en deduire le plus petit (rep le plus grand) des Zi. a toi de voir...
    Cia!

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    mars 2002
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mars 2002
    Messages : 17
    Points : 15
    Points
    15
    Par défaut
    Merci...je vais voir ce que je peux faire...

    Une autre question:

    Comment savoir si une droite coupe un plan, le tout dans l'espace ?

    Merci d'avance

    Frederic
    Delphi 6 Win 98

  4. #4
    Futur Membre du Club
    Inscrit en
    juillet 2002
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : juillet 2002
    Messages : 9
    Points : 9
    Points
    9
    Par défaut
    Salut,
    Comment savoir si une droite coupe un plan, le tout dans l'espace ?
    ceci ressemble terriblement a un devoir de maison (3em , 2nde ???)
    allons y quand meme:
    Soient O l'origine de ton espace et d la droite qui partant de O coupe perpendiculairement ton plan en un point P1. La distance OP1 est une characteristique de ton plan dans l'espace: c'est le produit scalaire de deux vecteurs bien definis de ton espace.
    Soit g la droite dont tu veux determiner l'intersection par rapport a ton plan; Considerons un vecteur a partant de O et qui coupe d en un point M qlc. Soient en fin I un suppose point d'intersection entre d et le plan; Xo = OI et MI = To.MI .
    On demontre que l'equation de d peut se mettre sous la forme : X = a +T.MI et que OP1 = OP1 .X.
    Si d coupe ton plan alors il exit un reel To tel que :
    To=( OP1-OP1.a ) / ( OP1 . MI ).

    Pour conclure:
    Si tu veux simplement savoir s'il existe un point d'intersection entre ta droite et le plan, il suiffira de montrer qu'il exist deux points M et I sur d tels que OP1 . MI<> 0 ( ie la droite n'est pas parallele au plan. M et I st deux pts qlc de d. )
    La determination de I est plus Complexe:
    Les coodonnees de I sont donnees par la relation OI = OM+To.MI

    PS
    I)
    qlq precisions sur la notation:
    1) To --> lire T-zero (de mm pour Xo)
    2) Les lettres soulignees representent des vecteurs. Ainsi X = vecteur X et OI = vecteur O I.
    3) OM . X = Produit scalaire du vecteur OM par le vecteur X (= |OM| . |X| . cos(OM , X ) )

    II)
    Je suis conscient du fait que ceci ne represente pas un algorithme mais j'espere avoir repondu a ta question . ;-)

    Cia!

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    mars 2002
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mars 2002
    Messages : 17
    Points : 15
    Points
    15
    Par défaut
    Merci beaucoup...

    Ne t'inquietes pas, ce n'est pas un devoir de maths. .. mais j'essaye juste de reprogrammer OpenGL, pour ajouter des fonctions differentes, changer quelques petites choses... et je suis pas forcement doue en maths... ... mais j'avance...

    Frederic
    Delphi 6 Win 98

  6. #6
    Futur Membre du Club
    Inscrit en
    juillet 2002
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : juillet 2002
    Messages : 9
    Points : 9
    Points
    9
    Par défaut
    Salut Frederic,
    ton projet doit etre tres passionant je suppose
    et je suis pas forcement doue en maths... ... mais j'avance...
    rassure-toi moi non plus ... et l'essentiel c'est justement d'avancer.
    J 'avais quelques Libairies de geometrie que je n' arrive malheureusement pas a retrouver...
    Si je retrouve qlc d'util je t' informe.
    regardes ici (histoire d'y glanner qlq iddes au besoin.. )
    [ C]
    http://astronomy.swin.edu.au/~pbourke/geometry/
    ==> Descriptions + Algorithmes de qlq methodes geometriques (on y trouve entre autre des Variantes de la solution du probleme de l'intersection Plan- ligne . )

    [Pascale]
    http://homepages.borland.com/efg2lab/Library/Delphi/Graphics/WilliamEgge_EMath.txt
    ==> un Math unit ; on y trouve quelques fonctions qui peuvent etre utiles : Produit scalaire, calcul d'angle et bien autres
    http://homepages.borland.com/efg2lab/Library/Delphi/Graphics/GraphicsMathLibrary.PAS.TXT
    http://homepages.borland.com/efg2lab/Library/Delphi/Graphics/GraphicsPrimitivesLibrary.PAS.TXT
    ==> qlc de senblable

    Bonne chance et Cia!

    Sarbacane;

  7. #7
    Membre du Club
    Inscrit en
    août 2002
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : août 2002
    Messages : 44
    Points : 49
    Points
    49
    Par défaut
    le problème des triangles par rapport à la caméra n'est pas évident : en effet il est possible que les deux triangles se coupent ! (intersection = segement ou polygone).

    En général on prend la moyenne des distances de chaque sommet du traingle à la caméra, pour chaque triangle, et on compare.

    Ca c valable pour des approximations internes. Si c pour de l'affichage, il vaut mieux utiliser un Z-buffer.

Discussions similaires

  1. Point à l'intérieur d'un triangle ?
    Par remi77 dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 15/05/2017, 14h49
  2. [ALGO] dessiner un triangle dans le bon sens
    Par lefait dans le forum Algorithmes et structures de données
    Réponses: 13
    Dernier message: 05/02/2005, 14h38
  3. Intersection entre 2 triangles?? (3D)
    Par supergrey dans le forum DirectX
    Réponses: 1
    Dernier message: 25/08/2004, 09h22
  4. Triangles disparaissant seuls
    Par atalmapi dans le forum DirectX
    Réponses: 18
    Dernier message: 21/08/2004, 22h53
  5. [Algo] Point appartenant au triangle
    Par alexthomas dans le forum OpenGL
    Réponses: 12
    Dernier message: 05/03/2004, 16h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo