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 :

Faire un fit d'un nuage de point plan dans un espace 3D par un cylindre


Sujet :

MATLAB

  1. #1
    Membre du Club
    Homme Profil pro
    Doctorant Mécanique
    Inscrit en
    Décembre 2012
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant Mécanique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 45
    Points : 46
    Points
    46
    Par défaut Faire un fit d'un nuage de point plan dans un espace 3D par un cylindre
    Bonjour

    J'ai un nuage de point (X,Y,Z ou triangulation objet) représentant une la surface d'un cylindre et je souhaite faire un fit par un cylindre dont l'équation en 3D est x²+y²+z²-(ax+by+cz)²/(a²+b²+c²)=R² avec R le rayon du cylindre, et n(a,b,c) l'axe de révolution.

    J'ai essayer de regarder dans cftool sans trop de succès pour le moment.

    Merci de votre aide

    Thomas

    Petit image de la triangulation (gauche) et du nuage de point associé (droite)
    Nom : Cylindre_data.png
Affichages : 1553
Taille : 311,4 Ko

  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 316
    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 316
    Points : 52 948
    Points
    52 948
    Par défaut
    Pourrais-tu nous fournir les coordonnées des points dans un fichier MAT (mis dans une archive zip ou rar) ?

  3. #3
    Membre du Club
    Homme Profil pro
    Doctorant Mécanique
    Inscrit en
    Décembre 2012
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant Mécanique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 45
    Points : 46
    Points
    46
    Par défaut
    Voilà le nuage de point x,y,z

    un simple
    pour visualiser la chose.

    cylindre.mat.zip

  4. #4
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    1 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 883
    Points : 3 431
    Points
    3 431
    Par défaut
    salut

    je te conseilles de regarder cette indispensable contribution
    il te faudra juste développer ton équation de manière à avoir une combinaison linaires de x^2,y^2,z^2,xy,xz,yz

    Fabien

  5. #5
    Membre du Club
    Homme Profil pro
    Doctorant Mécanique
    Inscrit en
    Décembre 2012
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant Mécanique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 45
    Points : 46
    Points
    46
    Par défaut
    Bon déja il y a un problème sur l'équation utilisée :

    x²+y²+z²-(ax+by+cz)²/(a²+b²+c²)=R² est l'équation d'un cylindre d'axe On avec n(a,b,c). L'axe de révolution de mon cylindre ne passe probablement pas par l'origine du repère.
    SI je ne me trompe pas il doit falloir remplacer a,b,c par

    a=a+x0;
    b=b+y0;
    c=c+z0;

    ou (x0,y0,z0) représente la "nouvelle" origine

    Il est logique d'avoir 7 inconnues car pour définir un cylindre il faut une droite => un point (3) + une direction (3) et un rayon (1).

  6. #6
    Membre du Club
    Homme Profil pro
    Doctorant Mécanique
    Inscrit en
    Décembre 2012
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant Mécanique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 45
    Points : 46
    Points
    46
    Par défaut
    J'ai avancé un peu mais je bloque toujours.

    J'ai l’équation ax²+by²+cz²+dxy+eyz+fxz+g=0 (je passe sur les expression de a,b,c,d,e,f,g)

    Je souhaite trouver a,b,c,d,e,f,g mais je n'arrive pas a le mettre sous forme matricielle. Mes souvenir d'algèbre remonte un peu.

  7. #7
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    1 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 883
    Points : 3 431
    Points
    3 431
    Par défaut
    Citation Envoyé par Bob_Tom Voir le message
    J'ai l’équation ax²+by²+cz²+dxy+eyz+fxz+g=0 (je passe sur les expression de a,b,c,d,e,f,g)
    il ne faut pas l'exprimer comme ca, sinon tu trouvera la solution ou tous les paramètres sont nuls (car a=b=c=d=e=f=g=0 est une solution de l'équation que tu viens d'écrire)
    exprime là plutôt sous la forme
    ax²+by²+cz²+dxy+eyz+f=xz par exemple

    Citation Envoyé par Bob_Tom Voir le message
    Je souhaite trouver a,b,c,d,e,f,g mais je n'arrive pas a le mettre sous forme matricielle. Mes souvenir d'algèbre remonte un peu.
    c'est assez simple :
    tu cherche à écrire A*X = B ou X = [a;b;c;d;e;f ]
    si on appeles vX, vY et vZ les vecteurs x, y, z de tes points ca donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    A =  [vX(:).^2   vY(:).^2   vZ(:).^2   vX(:).*vY(:)   vy(:).*vZ(:) ones(size(vX(:)))];
    B = [vX(:).*vZ(:)];
    solution = A\B;

Discussions similaires

  1. Réponses: 3
    Dernier message: 22/09/2014, 00h01
  2. Best fit nuage de points par ellipse
    Par walks dans le forum MATLAB
    Réponses: 4
    Dernier message: 13/07/2010, 10h46
  3. Equation d une sphere a partir d un nuage de points
    Par MDiabolo dans le forum Algorithmes et structures de données
    Réponses: 27
    Dernier message: 05/05/2006, 16h40
  4. nuages de points sont-ils dans une zone??
    Par smedini dans le forum Algorithmes et structures de données
    Réponses: 26
    Dernier message: 21/02/2006, 11h01
  5. interpolation couleur entre nuage de points
    Par soubre dans le forum OpenGL
    Réponses: 2
    Dernier message: 02/07/2005, 15h52

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