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 :

Afficher un plan passant par 3 points


Sujet :

MATLAB

  1. #1
    Membre à l'essai
    Étudiant
    Inscrit en
    Juin 2010
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2010
    Messages : 15
    Points : 11
    Points
    11
    Par défaut Afficher un plan passant par 3 points
    Bonjour à toutes et à tous,

    Je butte sur un problème. J'ai trois points dans l'espace, et je souhaiterais afficher le plan passant par ces 3 points.

    Je n'ai aucune idée pour aborder ce problème. Et encore moins sur les fonctions qui pourraient m'aider à le résoudre.

    Merci d'avance pour votre aide.

  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 302
    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 302
    Points : 52 882
    Points
    52 882
    Par défaut
    A partir de ces trois points, tu peux déterminer les coefficients de l'équation du plan en calculant le vecteur normal au plan.

    Une fois que tu as l'équation, il te suffit de choisir 3 ou 4 points dans le plan xOy, de calculer la composante z de chacun de ces points.

    Tu peux ensuite tracer le plan sous la forme d'un triangle ou d'un quadrilatère à l'aide de la fonction patch.
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  3. #3
    Membre à l'essai
    Étudiant
    Inscrit en
    Juin 2010
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2010
    Messages : 15
    Points : 11
    Points
    11
    Par défaut
    Merci pour votre réponse.

    Je viens bien en effet de réussir à déterminer l'équation de mon plan (notamment grâce aux fonctions cross syms et dot).

    Cependant, je ne vois pas comment afficher le plan avec les points que j'aurai choisi.

    J'ai essayé déjà d'utiliser solve et ezsurf pour afficher le plan que j'ai calculé, mais cela n'a pas l'air de fonctionner pour toutes les combinaisons de 3 points que j'ai.

    (j'ai 4 plan, chacun correspondant à une face d'un tétraèdre).

  4. #4
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    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 302
    Points : 52 882
    Points
    52 882
    Par défaut
    Tu n'as pas besoin de toutes ces fonction...

    Voir ici : http://mathworld.wolfram.com/Plane.html

    Code : 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
    xyz = rand(3,3);
     
    figure
     
    plot3(xyz(:,1),xyz(:,2),xyz(:,3),'r*')
    hold on
     
    V1 = xyz(1,:)-xyz(2,:);
    V2 = xyz(3,:)-xyz(2,:);
     
    n = cross(V1,V2);
     
    d = -n(1)*xyz(1,1)-n(2)*xyz(1,2)-n(3)*xyz(1,3);
     
    x = xlim;
    x = [x(1) x(2) x(2) x(1)];
    y = ylim;
    y = [y(1) y(1) y(2) y(2)];
     
    z = (-n(1)*x-n(2)*y-d)/n(3);
     
    patch('vertices',[x(:) y(:) z(:)],'faces',1:4,'facecolor','g')
     
    axis vis3d equal
    Ou alors je n'ai pas compris ta question.
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  5. #5
    Membre à l'essai
    Étudiant
    Inscrit en
    Juin 2010
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2010
    Messages : 15
    Points : 11
    Points
    11
    Par défaut
    Oui merci c'est ce que je cherchais. Cependant, je ne comprends pas le d et le z. A quoi cela sert-il de les calculer ?


    j'utilise la méthode suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    normal=cross(a-b, a-c)
    syms x y z
    plan=[x,y,z];
    tutu=dot(conj(plan-a),normal)
    syms res_x
    res_x=solve(tutu,z)
    ezsurf(res_x)
    mais rien que ça en fait je me suis rendu que ça plantais sur le solve, car je n'ai pas forcément les 3 variables dans l'équation de mes plans.

  6. #6
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    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 302
    Points : 52 882
    Points
    52 882
    Par défaut
    Citation Envoyé par quoi_godard Voir le message
    Oui merci c'est ce que je cherchais. Cependant, je ne comprends pas le d et le z. A quoi cela sert-il de les calculer ?
    As-tu lu le lien que je t'ai fourni ?

    L'équation d'un plan s'écrit ax + by + cz + d = 0 et le vecteur normal à ce plan a pour composante (a,b,c)

    Le calcul des composantes (a,b,c) se fait aisément avec le produit vectoriel de deux vecteurs appartenant au plan.

    Ensuite il suffit d'écrire d = -ax - by - cz
    Cette équation doit être vérifiée pour tout point du plan. Il suffit donc de remplacer (x,y,z) par les coordonnées d'un des trois points du problème initial.

    Ensuite pour visualiser le plan, il faut au minimum trois ou quatre points pour tracer un triangle ou un quadrilatère. Tu choisis donc 3 ou 4 couples (x,y) que tu injectes dans l'équation du plan et tu détermine donc la composante z de la "projection" de (x,y) sur le plan.

    Ensuite, tu traces avec la fonction patch
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  7. #7
    Membre à l'essai
    Étudiant
    Inscrit en
    Juin 2010
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2010
    Messages : 15
    Points : 11
    Points
    11
    Par défaut
    Ah oui en effet.
    Ça y est j'ai eu le déclic.
    Merci.

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

Discussions similaires

  1. Équation d'un plan défini par N points
    Par KeV31 dans le forum Mathématiques
    Réponses: 7
    Dernier message: 28/01/2020, 00h01
  2. Calculer le vecteur normal a un plan formé par trois points.
    Par parp1 dans le forum Mathématiques
    Réponses: 12
    Dernier message: 11/03/2013, 17h57
  3. Equation du plan moyen passant par N points
    Par avironman dans le forum Mathématiques
    Réponses: 5
    Dernier message: 30/04/2009, 17h12
  4. Surface passant par des points
    Par Youn05 dans le forum MATLAB
    Réponses: 1
    Dernier message: 22/02/2007, 13h28
  5. [math] equ sinusoide passant par deux points
    Par ddams dans le forum Mathématiques
    Réponses: 11
    Dernier message: 24/05/2003, 14h12

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