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 :

graphique de points 3d


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Enseignant
    Inscrit en
    Mars 2016
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2016
    Messages : 33
    Par défaut graphique de points 3d
    Bonjour,
    j'ai réaliser un programme permettant de calculer les 3 coordonnées d'un point P (px,py,pz) et j'aimerai une représentation type nuage de point
    Cependant le programme ci-dessous ne m'affiche qu'une fenetre blanche
    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
    25
    26
    27
    for t1=-pi : pi/4 : pi
      for t2=-pi : pi/4 : pi
      for t3=-pi : pi/4 : pi
      for t4=-pi : pi/4 : pi
      T1=[cos(t1) -sin(t1) 0 0;sin(t1) cos(t1) 0 0;0 0 1 0;0 0 0 1];
    T2=[cos(t2) -sin(t2) 0 90;0 0 1 0;-sin(t2) cos(t2) 0 0;0 0 0 1];
    T3=[cos(t3) -sin(t3) 0 0;0 0 1 70;-sin(t3) -cos(t3) 0 0;0 0 0 1];
    T4=[cos(t4) -sin(t4) 0 0;0 0 -1 320;sin(t4) -cos(t4) 0 0;0 0 0 1];
    T5=[1 0 0 260;0 0 1 0;0 1 0 0;0 0 0 1];
    %calcul
    T=T1*T2;
    T=T*T3;
    T=T*T4;
    T=T*T5;
    px=T(1,4);
    py=T(2,4);
    pz=T(3,4);
    psi=atan2(-T(2,3),T(3,3));
    a=(T(2,3)*T(2,3))+(T(3,3)*T(3,3));
    phi=atan2(T(1,3),sqrt(a));
    teta=atan2(-T(1,3),T(1,1));
    A=[psi px;phi py;teta pz];
    plot3(px,py,pz);    
      end    
      end    
      end         
    end

  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 317
    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 317
    Par défaut
    Citation Envoyé par dim22 Voir le message
    Cependant le programme ci-dessous ne m'affiche qu'une fenetre blanche
    Non, le programme affiche chaque point successivement. Il 'y a donc que le dernier point qui est affiché au final.

    Pour conserver l'affichage de tous les points, il faut utiliser la fonction hold et drawnow:

    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
    25
    26
    27
    28
    29
    30
    figure
    hold on
    for t1=-pi : pi/4 : pi
        for t2=-pi : pi/4 : pi
            for t3=-pi : pi/4 : pi
                for t4=-pi : pi/4 : pi
                    T1=[cos(t1) -sin(t1) 0 0;sin(t1) cos(t1) 0 0;0 0 1 0;0 0 0 1];
                    T2=[cos(t2) -sin(t2) 0 90;0 0 1 0;-sin(t2) cos(t2) 0 0;0 0 0 1];
                    T3=[cos(t3) -sin(t3) 0 0;0 0 1 70;-sin(t3) -cos(t3) 0 0;0 0 0 1];
                    T4=[cos(t4) -sin(t4) 0 0;0 0 -1 320;sin(t4) -cos(t4) 0 0;0 0 0 1];
                    T5=[1 0 0 260;0 0 1 0;0 1 0 0;0 0 0 1];
                    %calcul
                    T=T1*T2;
                    T=T*T3;
                    T=T*T4;
                    T=T*T5;
                    px=T(1,4);
                    py=T(2,4);
                    pz=T(3,4);
                    psi=atan2(-T(2,3),T(3,3));
                    a=(T(2,3)*T(2,3))+(T(3,3)*T(3,3));
                    phi=atan2(T(1,3),sqrt(a));
                    teta=atan2(-T(1,3),T(1,1));
                    A=[psi px;phi py;teta pz];
                    plot3(px,py,pz);
                    drawnow
                end
            end
        end
    end
    Tu peux aussi optimiser légèrement le code comme ceci :

    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
    25
    26
    27
    28
    29
    30
    figure
    hold on
    T5=[1 0 0 260;0 0 1 0;0 1 0 0;0 0 0 1];
    for t1=-pi : pi/4 : pi
        T1=[cos(t1) -sin(t1) 0 0;sin(t1) cos(t1) 0 0;0 0 1 0;0 0 0 1];
        for t2=-pi : pi/4 : pi
            T2=[cos(t2) -sin(t2) 0 90;0 0 1 0;-sin(t2) cos(t2) 0 0;0 0 0 1];
            for t3=-pi : pi/4 : pi
                T3=[cos(t3) -sin(t3) 0 0;0 0 1 70;-sin(t3) -cos(t3) 0 0;0 0 0 1];
                for t4=-pi : pi/4 : pi                  
                    T4=[cos(t4) -sin(t4) 0 0;0 0 -1 320;sin(t4) -cos(t4) 0 0;0 0 0 1];                
                    %calcul
                    T=T1*T2;
                    T=T*T3;
                    T=T*T4;
                    T=T*T5;
                    px=T(1,4);
                    py=T(2,4);
                    pz=T(3,4);
                    psi=atan2(-T(2,3),T(3,3));
                    a=(T(2,3)*T(2,3))+(T(3,3)*T(3,3));
                    phi=atan2(T(1,3),sqrt(a));
                    teta=atan2(-T(1,3),T(1,1));
                    A=[psi px;phi py;teta pz];
                    plot3(px,py,pz);
                    drawnow
                end
            end
        end
    end

  3. #3
    Membre averti
    Homme Profil pro
    Enseignant
    Inscrit en
    Mars 2016
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2016
    Messages : 33
    Par défaut
    je te remercie de ton aide
    Cependant lorsque je lance le programme j'obtiens à nouveau une fenetre blanche
    je débute sous matlab et je dois mal m'y prendre
    mais je ne vois pas où est mon erreur

  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 317
    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 317
    Par défaut
    Remplace :

    par


  5. #5
    Membre averti
    Homme Profil pro
    Enseignant
    Inscrit en
    Mars 2016
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2016
    Messages : 33
    Par défaut
    Ah, merci
    là j'obtiens un graphique
    Cependant c'est du 2d alors que j'aimerais avoir la représentation tridimensionnelle de l'ensemble des points de cordonnées (px,py,pz)

  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 317
    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 317
    Par défaut
    Ajoute ceci à la fin du code :


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

Discussions similaires

  1. Graphique : plusieurs point par colonne
    Par leyeno dans le forum Flex
    Réponses: 0
    Dernier message: 04/08/2011, 10h32
  2. Graphique Scatter points Excel
    Par NewYork dans le forum Excel
    Réponses: 3
    Dernier message: 02/01/2011, 19h40
  3. [XL-2003] Graphique avec points clignotants
    Par logiclogic dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 11/08/2010, 23h05
  4. [GRAPHIQUE] Récupérer les coordonnées d'un point
    Par freud dans le forum Composants VCL
    Réponses: 6
    Dernier message: 29/09/2005, 12h31
  5. VBA, graphiques : Acceder au Range pointé par une série
    Par CCHEVALIER dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 27/09/2005, 10h56

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