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 volume à partir d'une reconstruction surfacique


Sujet :

Algorithmes et structures de données

  1. #1
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 39
    Par défaut Calcul volume à partir d'une reconstruction surfacique
    salut:
    j'ai un ensemble des points que j'ai les reliés par une methode de triangulation pour former un envoloppe (une surface), bien sur cette surface englobe un volume...
    cet envoloppe est englobé par une boite englobante (box)..
    je veux trouver quelques idées pour calculer le volume de cet envoloppe...

    NB: j'utilise matlab V 7.1

    merci d'avance

  2. #2
    Membre chevronné

    Inscrit en
    Août 2007
    Messages
    302
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 302
    Par défaut
    tu pourrais peut-être simplement faire la somme des volumes des tétraèdres qui forment ton volume?

    Salutations,

    Gregoire

  3. #3
    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 : 46
    Localisation : Etats-Unis

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

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

    le calcul du volume des tétraèdres formés par les triangles de l'enveloppe avec le barycentre est une solution, mais pas des plus facile car les tétraèdres ne sont pas réguliers

    Tu peux tenter un remplissage de ton enveloppe, comme on fait un remplissage de polygone en 2D? C'est du discret, mais ça donnera une bonne approximation.
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  4. #4
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 39
    Par défaut
    salut:
    j'ai une solution mais je ne suis pas sure de son efficacité :
    j'ai pensé de passer un cube d'un certain volume (VCube), et je le faie passer dans la boite englobante (box) : si ce cube est à l'intérieur du volume j'ajoute VCube au volume de l'envoloppe (VEnvoloppe= VEnvoloppe+VCube) sinon on passe et ainsi de suite ...
    le probléme c'est comment savoir si ce cube a touché l'envoloppe et a devenu à l'intérieur de cet envoloppe

  5. #5
    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 : 52
    Localisation : France, Hérault (Languedoc Roussillon)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Suis-je le seul à penser au théorème de Gauss ?
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  6. #6
    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 : 46
    Localisation : Etats-Unis

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

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

    Citation Envoyé par pseudocode Voir le message
    Suis-je le seul à penser au théorème de Gauss ?
    il semblerait que oui


    Pour foufouta, ton idée donnera le même résultat que le remplissage de volume que j'ai proposé, mais à une différence près : le temps d'éxécution. En effet ma méthode semble plus complexe, mais elle est très rapide. En revanche, pour avoir programmé la tienne, il faut que pour chaque position du cube, tu testes par rapport à toutes les face de l'enveleppe.
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  7. #7
    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 : 52
    Localisation : France, Hérault (Languedoc Roussillon)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par ToTo13 Voir le message
    Pour foufouta, ton idée donnera le même résultat que le remplissage de volume que j'ai proposé, mais à une différence près : le temps d'éxécution.
    Ah... Ca me parrait pas énorme pourtant.

    Pour une surface composée de N triangles cela fait:
    a. N x calcul de surface au sol (z=0) d'un triangle
    b. N x calcul de volume du prisme triangulaire (V = surface au sol * hauteur moyenne)
    c. N x calcul de l'orientation (suivant z) de la facette (signe + ou -)
    d. Sommation des N volumes signés

    (Si on connait déjà les normales des facettes, le point "c" est trivial.)
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  8. #8
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 39
    Par défaut
    salut:

    citation:
    Suis-je le seul à penser au théorème de Gauss


    merci pseudocode et ToTo13 pour vos réponses intéressantes..

    mais j'ai pas une grande idée sur le théoréme de gaus, si vous pouvez me guider sur le bon chemin

    merci

  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 : 52
    Localisation : France, Hérault (Languedoc Roussillon)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Area and Volume Calculations by Kyle Owen

    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    // v: A pointer to the array of vertices
    // i: A pointer to the array of indices
    // n: The number of indices (multiple of 3)
    // This function uses Gauss's Theorem to calculate the volume of a body
    // enclosed by a set of triangles. The triangle set must form a closed
    // surface in R3 and be outward facing. Outward facing triangles index
    // their vertices in a counterclockwise order where the x-axis points
    // left, the y-axis point up and the z-axis points toward you (rhs).
    float CalculateVolume(const VECTOR3      *v,
                          const unsigned int *i,
                          const unsigned int  n)
    {
       unsigned int j;
       VECTOR3      v1;
       VECTOR3      v2;
       VECTOR3      v3;
       float        volume = 0.0f;
     
       for(j = 0; j < n; j+=3)
       {
          v1 = v[i[j ]];
          v2 = v[i[j+1]];
          v3 = v[i[j+2]];
     
          volume += ((v2.y-v1.y)*(v3.z-v1.z)-
                     (v2.z-v1.z)*(v3.y-v1.y) )*(v1.x+v2.x+v3.x);
     
       }
     
       return volume / 6.0f;
    }
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  10. #10
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 39
    Par défaut
    merci pseudocode
    j'essais d'adapter ce programme avec mon programme matlab
    je vous informe aprés mon essai du résultat obtenu..

    merci

  11. #11
    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 : 52
    Localisation : France, Hérault (Languedoc Roussillon)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par foufouta Voir le message
    merci pseudocode
    j'essais d'adapter ce programme avec mon programme matlab
    je vous informe aprés mon essai du résultat obtenu..

    merci
    Attention de bien respecter l'ordre de numerotation des vertex pour appliquer cet algorithme.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  12. #12
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 39
    Par défaut
    Citation Envoyé par pseudocode Voir le message
    Ah... Ca me parrait pas énorme pourtant.

    Pour une surface composée de N triangles cela fait:
    a. N x calcul de surface au sol (z=0) d'un triangle
    b. N x calcul de volume du prisme triangulaire (V = surface au sol * hauteur moyenne)
    c. N x calcul de l'orientation (suivant z) de la facette (signe + ou -)
    d. Sommation des N volumes signés

    (Si on connait déjà les normales des facettes, le point "c" est trivial.)
    pour cette solution, désolé mais j'ai pas compris cette solution


    Attention de bien respecter l'ordre de numerotation des vertex pour appliquer cet algorithme
    je vais essayer de respecter l'ordre de numérotation des vertex
    merci

  13. #13
    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 : 52
    Localisation : France, Hérault (Languedoc Roussillon)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par foufouta Voir le message
    pour cette solution, désolé mais j'ai pas compris cette solution
    C'est plus simple a comprendre en 2D (calcul de surface). C'est un peu la méthode d'intégration par les trapèzes:

    1. on calcule la surface totale des trapèzes pour les segments orientés vers le haut -> Sp (surface totale) de signe posistif
    2. on calcule la surface totale des trapèzes pour les segments orientés vers le bas -> Sn (surface totale) de signe négatif
    3. on fait la somme des 2 surfaces Sp+Sn => il reste la surface de la forme.



    C'est la même chose en 3D (calcul de volume). Sauf que ce ne sont plus des trapèzes mais des prismes à base triangulaire.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  14. #14
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 39
    Par défaut
    merci pseudocode
    j'éspére que je vous ne dérange pas avec mes questions

    bref, pour vos dérniéres explications , ils me parait un peu complexes avec l'environnement Matlab...

    mais la solution avec Gauss me parait qu'elle peut etre applicable...
    aussi la méthode de TOTO13 , elle me parait applicable...
    j'ai entrain d'essayer d' appliquer les 2 méthodes car j'ai besoin de plus q'une seul méthode...
    mais j'ai pas obtenu encore des resultats..
    je vais réessayer ....

    merci pour vos aides

  15. #15
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 39
    Par défaut

    merci pseudocode pour tes aides
    la solution en utilisant le théorème de Gauss, m'a donné des bons résultats...
    merci beaucoup...

  16. #16
    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 : 52
    Localisation : France, Hérault (Languedoc Roussillon)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 14
    Dernier message: 03/06/2014, 22h37
  2. Calcul d'un volume à partir d'une serie de liste de points
    Par gwal21 dans le forum Traitement d'images
    Réponses: 2
    Dernier message: 09/06/2011, 19h30
  3. Calcul EXCEL à partir d'une concaténation ?
    Par montyfabr dans le forum Conception
    Réponses: 1
    Dernier message: 26/10/2010, 07h47
  4. calculer semaine à partir d'une date
    Par flex@ dans le forum Développement Windows
    Réponses: 1
    Dernier message: 12/10/2010, 17h33
  5. Calcul VARIABLE à partir d'une autre VARIABLE
    Par claclapub dans le forum ODI (ex-Sunopsis)
    Réponses: 2
    Dernier message: 15/01/2009, 13h51

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