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 :

calcul des volumes d'objet 3d


Sujet :

Algorithmes et structures de données

  1. #1
    Candidat au Club
    Inscrit en
    Février 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 10
    Points : 3
    Points
    3
    Par défaut calcul des volumes d'objet 3d
    calcul des volume d'objet 3d représenté par des maillage triangulaire

    c'est un sujet sur lequel je vais faire de la recherche mais je ne sais pas par où commencer. Quelqu'un connait-il des bonnes documentations/sites à ce sujet ?

    MERCI 8)

  2. #2
    Membre éclairé
    Inscrit en
    Juin 2005
    Messages
    644
    Détails du profil
    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 644
    Points : 754
    Points
    754
    Par défaut
    Afin de réduire la dimension du problème, j'utilise le théorème de (Mikhail Vasilevich) Ostrogradsky.


    Somme {volume} [ (div (U)) . dtau] =
    Somme {surface qui entoure le volume} [ U.dS ]


    si maintenant on choisi un champ vectoriel U tel que div(U) = 1 alors

    Somme {volume} [ (div (U)) . dtau] = Somme {volume} [ dtau] = Volume d'où

    Volume =Somme {surface qui entoure le volume} [ U.dS ] si div(U)=1

    comme, si U = Ux i + Uy j + Uz k, div(U) = @Ux/@x + @Uy/@y + @Uz/@z on peut prendre pour U des champs vectoriels tels que:
    U(x,y,z)=x.i ou U(x,y,z) = y.j ou U(x,y,z)=z.k ou U(x,y,z)=1/3(x.i+y.j+z.k) ou ...
    < on le choisi en fonction des symétries du volume à étudier afin de simplifier au plus le calcul de l'intégrale de U.dS: Le résultat ne dépend pas du choix tant que div(U)=1 ! >

    Une des applications les plus connues de ce théorème est surment le lien entre l'équation de Gauss ( Somme E.dS = Rho / Epsilon0 ) et l'équation de maxwell
    div(E) = Rho / Epsilon0

    - Note : on utilise de façon analogue le théorème de Stokes pour le calcul d'aire afin de se ramener sur le contour de l'aire
    Somme{surface } [rot(A).dS] = Somme{ contour surface} [ A.dl ]
    on choisi alors un champ vectoriel A tel que rot(A) soit normal à la surface et de module 1 => pour une surface plane dans le plan xOy S =
    somme {contour} y.dx = - somme{contour} x.dy = 0.5 * somme{contour}(y.dx-x.dy)= ... Ceci a déjà été discuté dans un des mes
    précédents topics -


    Ceci ne réponds pas directement à la demande mais la déplace entre un espace 3D à un espace 2D où , évidemment, les temps de calculs, la stabilité des résultats, ... est plus stable et plus rapide.
    Il s'agit maintenant de mailler la surface intelligemment afin d’arriver à ses fins, ce qui est en général bien plus simple et rapide que de mailler le volume en son entier. A chaque élément de surface il faut aussi associer le vecteur normal N ( en faisant attention de l'orienter correctement ( tous dans la direction IN -> OUT ou OUT->IN mais pas de mélamges !!!)

  3. #3
    Candidat au Club
    Inscrit en
    Février 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 10
    Points : 3
    Points
    3
    Par défaut calcul des volume d'objet 3d
    vous avais presque parlez du tout mais moi j'ai pas compris rien est ce que vous pouver m'aider avec une documenttion SVP

  4. #4
    Membre actif Avatar de Betatesteur
    Inscrit en
    Juillet 2003
    Messages
    210
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 210
    Points : 248
    Points
    248
    Par défaut
    pour mieux te situer il faut d'abord comprendre ce qu'est 'UN MAILLAGE TRIANGULAIRE si c'est pas encore le cas biensur
    voir
    ce lien

  5. #5
    Membre expérimenté Avatar de 10_GOTO_10
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    887
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 887
    Points : 1 531
    Points
    1 531
    Par défaut
    Il y a bien plus simple: on calcule le volume de chaque prisme à trois cotés depuis un plan horizontal (niveau zéro, par exemple) jusqu'à la maille. Si la maille est orientée vers le haut, ajouter ce volume au total, sinon le retrancher.
    Attention simplement au risque d'overflow comme toujours quand on cumule des valeurs (qui peuvent être assez grandes suivant la taille des mailles et leur distance par rapport au plan de référence).

  6. #6
    Membre éclairé
    Inscrit en
    Juin 2005
    Messages
    644
    Détails du profil
    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 644
    Points : 754
    Points
    754
    Par défaut
    Pas d'accord...

    Bien sur cela marche mais

    Soit on peut intégrer le résultat comme pour un cône, une pyramide, une sphère, ...

    Soit on peut utiliser le théorème de Gulbert et Waage pour de volumes engendrés par rotation

    Soit toutes autres "astuces" ( décomposition en sous-volumes, ... ) : si on peut avoir une expression algébrique on est, bien entendu, dans une situation bien préférable.

    Pour un calcul Numérique il est INUTILE de mailler le volume. Seul un maillage de la surface est NECESSAIRE. Cela réduit considérablement le problème, les temps de calcul, les erreurs d'arrondis, ..., surtout si les volumes sont complexes de forme avec étranglements, ...

    Sauf si on a les valeurs de tous les dTau, autel cas on fait une adition, numériquement sommer A. dS est plus sur que V d Tau.
    Je ne vois par une raison significative de maintenir un calcul 3D si un calcul 2D est à disposition, d’autant plus que dans bien des cas les volumes sont définis à partir de leur surface externe.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 81
    Points : 56
    Points
    56
    Par défaut
    Je suis tombé sur une implémentation du théorème de Gauss en 2D et en 3D sur ce site :
    Area and Volume Calculations

    Les opérations mathématiques sont bien expliquées, et semblent bien adaptées dans le cas d'un maillage triangulaire.

  8. #8
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Bonjour,

    d'un point de vu algorithmique, je te conseillerai de faire une décomposition de ton volume ne sous volume convexe.
    Ensuite le problème est trivial.

  9. #9
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 084
    Points
    16 084
    Par défaut
    Citation Envoyé par johnnyjohnny
    Je suis tombé sur une implémentation du théorème de Gauss en 2D et en 3D sur ce site :
    Area and Volume Calculations

    Les opérations mathématiques sont bien expliquées, et semblent bien adaptées dans le cas d'un maillage triangulaire.
    +1.

    L'application du théorème de Gauss est a la fois simple et rapide. Seule chose, il faut avoir les "normales" des triangles pour savoir si on doit ajouter ou soustraire les volumes elementaires.

  10. #10
    Nouveau Candidat au Club
    Inscrit en
    Mars 2008
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Maillage 3D
    Bonjour,

    moi aussi je viens de commencer un sujet de recherche sur l'indexation des objets 3D, et le premier problème sur le quel je me suis tomber c'est : Comment obtenir l'ensemble des trinagle d'un maillage triangulaire, si quelqu'un a une idé merci de me la communiquer.


    the_king : j'aimerai bien entrez en cantacte avec vous, pouvez vous me communiquer votre email ?

  11. #11
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 5
    Points : 4
    Points
    4
    Par défaut la bonne orientation des surfaces
    Contrairement à mes précédents messages,
    ce n'est pas le signe de l'aire des surfaces qui donne l'orientation.
    En fait pour un polyèdre, il faut orienter les surfaces de proche en proche dans le même sens, direct ou indirect, en modifiant le sens de parcours des sommets d'une face s'il le faut.

Discussions similaires

  1. [Débutant] Calcul de volume d'un objet 3D
    Par mari_mimi dans le forum Images
    Réponses: 2
    Dernier message: 19/01/2015, 19h17
  2. [VxiR2] Calcul des valeurs identiques d'un objet
    Par DagoBI dans le forum Webi
    Réponses: 7
    Dernier message: 30/07/2009, 14h54
  3. Calcul des jours feriés
    Par obione dans le forum Langage
    Réponses: 5
    Dernier message: 07/11/2003, 12h36
  4. A propos des modèles d'objet (avec sources)
    Par DevX dans le forum C++Builder
    Réponses: 14
    Dernier message: 01/12/2002, 12h22
  5. Calcul des numéros de semaine d'un calendrier
    Par Invité dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 06/11/2002, 21h29

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