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

MATLAB Discussion :

[surfnorm] Calcul des vecteurs normaux sur les sommets d'un maillage


Sujet :

MATLAB

  1. #1
    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 [surfnorm] Calcul des vecteurs normaux sur les sommets d'un maillage
    Bonjour,

    J'ai obtenu une surface par triangulation sous matlab, et je cherche à obtenir les vecteurs normaux aux vertices. Pour ce faire, j'ai utilisé dans un premier temps la commande surfnorm qui me permet semble-t-il d'obtenir ce que je veux.
    Par contre les matrices que j'obtiens sont des matrices m x 3, et ce pour chaque composantes Nx,Ny,Nz obtenues.
    J'ai un peu de mal à comprendre la signification de ces matrices, parce que je pensais obtenir un vecteur simple genre [0 1 1] et que j'obtiens donc au final un vecteur normal de la forme [ [Nx1 Nx2 Nx3] [Ny1 Ny2 Ny3] [Nz1 Nz2 Nz3] ]

    de plus j'ai un vieux doute sur les normales calculées, parce que lorsque je les affiche sur ma figure, elle ne semblent pas correspondre à la surface générée par triangulation. En gros, j'ai pas l'impression que ça prendre en compte les faces.

    quelqu'un peut-il m'expliquer ce résultat ?

    merci pour vos réponses

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 309
    Points : 52 901
    Points
    52 901
    Par défaut
    Je ne suis pas sûr de bien te comprendre

    SURFNORM calcul les normales aux sommets pas les normales des faces ; en gros : moyenne des normales des faces communes à un sommet.

    Pour ton problème avec QUIVER, peux-tu nous montrer le graphique.

    Autre chose, pour tester ton programme, tu peux partir de la triangularisation d'une sphère. Ce sera beaucoup plus facile pour contrôler les normales

  3. #3
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 309
    Points : 52 901
    Points
    52 901
    Par défaut
    En plus, si tu trace ton maillage avec des objets Patch, MATLAB calcul automatiquement ces normales, voir la propriété VertexNormals de ces objets.

  4. #4
    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
    c'est ce que je cherche, calculer la normale aux sommets (vertices), pardon de pas avoir été clair.
    le seul problème que j'ai, c'est de comprendre pourquoi avec surfnorm j'obtiens une matrice au lieu d'un vecteur pour les composantes Nx,Ny,Nz de la normale.

    par contre je n'ai pas utilisé quiver3, ni patch

  5. #5
    Membre éprouvé
    Avatar de rostomus
    Homme Profil pro
    Doctorant électronique et traitement du signal
    Inscrit en
    Décembre 2006
    Messages
    791
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Doctorant électronique et traitement du signal

    Informations forums :
    Inscription : Décembre 2006
    Messages : 791
    Points : 1 205
    Points
    1 205
    Par défaut
    Salut,

    D'apres ce que j'ai compris, lorsque tu met par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Nx,Ny,Nz]=surfnorm(Z);
    Nx, Ny et Nz sont des matrices de même taille que Z, car ceux sont les trois composantes spatiales de la normale pour chaque vertice, doc pour chaque point de Z. par exemple, si on veut trouver la normale du sommet ayant comme coordonnées (i, j, Z(i,j)), c'est le vecteur ayant comme composantes (Nx(i,j), Ny(i,j), Nz(i,j)).
    donc Nx, Ny, Nz doivent avoir la même taille que Z.

    j'éspère que c'est ce que tu cherches à comprendre.

  6. #6
    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
    ok je crois que je comprend, même si ton exemple n'est tout à fait comme le mien.

    je pars d'une matrice 3 x n comme celle-ci dessous. dans ma tête j'imaginais obtenir une correspondance du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     x  y  z                             nx   ny   nz
    --------                            -------------
    x1 y1 z1    --> 1er point -->       nx1  ny1  nz1
      ....                                   ....
    xn yn zn                            nxn  nyn  nzn
    je vais regarder avec les indications que tu m'as fournies comment arriver à quelque chose comme ça

    merci en tout cas pour ta réponse.

Discussions similaires

  1. Calcul du flot maximal pour un graphe contenant des capacités sur les sommets
    Par lisenette dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 10/03/2014, 15h41
  2. Calcul des vecteurs de co-occurrences pour les mots
    Par samorra dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 21/05/2011, 01h36
  3. Récupération des composants DOS sur les CD de Windows Vista
    Par koKoTis dans le forum Windows Vista
    Réponses: 2
    Dernier message: 09/09/2006, 21h56
  4. Mettre des données string sur les axes d'un graphique
    Par Aurore_atmo dans le forum MATLAB
    Réponses: 2
    Dernier message: 06/07/2006, 11h57
  5. Realiser des tests exhaustifs sur les String
    Par Sarrus dans le forum Langage
    Réponses: 9
    Dernier message: 07/07/2005, 11h52

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