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 3D dynamique


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 12
    Par défaut [débutant] Graphique 3D dynamique
    Bonjour,

    Je souhaite visualiser des données dans un environnement 3D.

    Ces données sont des valeurs de capteurs de force en X, Y, Z. J'aimerai donc visualiser l'évolution du vecteur force au cours du temps.

    Pour l'instant, je considère ce vecteur comme un point.

    Lorsque j'utilise plot3, j'obtiens la "trajectoire". Bon début, mais je suis une visualisation dynamique.

    Lorsque j'utilise comet3, l'affichage ce fais très rapidement, donc le résultat est comme avec plot3.

    Je me suis intéressé à la fonction movie, sans réussite, surement par manque d'expérience...

    Quelle voie me conseilleriez vous?

    Excellent après midi à tous.

    JC

  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 jc2456 Voir le message
    Quelle voie me conseilleriez vous?
    De commencer par lire la : Comment animer le tracé d'une courbe ?

    Dans ton cas, si le tracé se fait trop rapidement, utilise une légère pause (fonction PAUSE) à la place du DRAWNOW

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 12
    Par défaut
    Désolé, j'étais passé trop vite sur les FAQ.

    Par contre les FAQ sont excellentes pour un tas d'info aux quelles on ne pensent pas.

    Maintenant je vais chercher pour animer ce point sans que la trajectoire reste affichée.

    La prochaine étape sera d'animer non pas le point, mais le vecteur force modélisé à partir d'un point fixe (genre un baton qui est fixe à l'extrémité du bas, et dont l'autre extrémité varie selon x y z).

    Et l'étape d'après sera cette meme modélisation avec un changement du vue de caméra par le biais d'une interface graphique.

    Je sens que le week-end va etre court!!!

    Donc merci pour ce lien.

    Excellente fin de journée.

    JC

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 12
    Par défaut
    Bonjour,

    Voici le code que j'ai utilisé :

    % Génération des données

    % Création de l'objet Figure contenant les tracés
    fig=figure;

    % Tracé de la courbe

    plot3 (X, Y, Z)

    % Second objet Axes où est tracée la courbe animée
    %subplot(1,1,1)

    % Modification de la propriété DoubleBuffer de l'objet Figure pour
    % éviter le clignotement de la fenêtre
    % NECESSAIRE POUR TOUTE ANIMATION
    set(fig,'doublebuffer','on')

    % Tracé du premier point de la courbe
    % et récupération de l'identifiant (handle) p de l'objet Line crée.

    p=plot3 (X(1),Y(1),Z(1));

    % Ajustement des limites de l'objet Axes
    xlim([min(X) max(X)])
    ylim([min(Y) max(Y)])
    zlim([min(Z) max(Z)])

    % On boucle sur le nombre de points à tracer.
    % On démarre à 2 puisque le premier est déjà tracé
    for n=2:numel(X, Y, Z)

    % Ajout des points de la courbe au fur et à mesure
    % en utilisant la combinaison SET + identifiant (handle)
    set(p,'xdata',X(1:n),'ydata',Y(1:n),'zdata',Z(1:n));
    % Forçage de l'affichage du tracé

    drawnow

    title('Déplacement du centre de gravité')
    end
    Voici mes question :
    - l'affichage est très lent, car j'ai plus de 40 000 lignes
    - est ce que cette ligne est optimale "for n=2:numel(X, Y, Z)"
    - et pour finir, j'obtiens ce message d'erreur que je ne comprends pas :
    ??? Index exceeds matrix dimensions.

    Error in ==> animation_7 at 34
    set(p,'xdata',X(1:n),'ydata',Y(1:n),'zdata',Z(1:n));
    Merci à ceux qui ont le courage de se pencher sur cette requète.

    Excellente soirée.

    JC

  5. #5
    Expert confirmé
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Par défaut
    Citation Envoyé par jc2456 Voir le message
    - est ce que cette ligne est optimale "for n=2:numel(X, Y, Z)"
    C'est surtout qu'elle est fausse...D'où sûrement le message d'erreur qui suit (qui est dans la Index exceeds matrix dimensions.)...Relis bien la documentation de NUMEL.

    A priori X, Y et Z ont la même dimension, non ? Et sont des vecteurs ? Donc il te suffit de faire ta boucle sur l'un des éléments :numel fonctionne aussi ici mais moi je préfère length
    (peut-être parce que NUMEL n'existait pas encore dans les versions de MATLAB que j'ai utilisées...des fois je suis un peu réac' )

    Après pour la lenteur, je ne sais pas ne pouvant tester.
    Par contre tu peux sortir l'instruction TITLE de la boucle, non ?

Discussions similaires

  1. Graphique croisé dynamique
    Par djpit dans le forum Access
    Réponses: 1
    Dernier message: 25/08/2006, 17h54
  2. Réponses: 2
    Dernier message: 16/06/2006, 14h14
  3. Modifier l'aspect d'un graphique croisé dynamique
    Par Goldenduck4000 dans le forum IHM
    Réponses: 6
    Dernier message: 01/06/2006, 15h11
  4. [C#]composants pour créer graphiques croisé dynamiques
    Par bossun dans le forum Windows Forms
    Réponses: 2
    Dernier message: 30/05/2006, 10h49
  5. imprimer graphique croisé dynamique ou formulaire
    Par bossun dans le forum VBA Access
    Réponses: 4
    Dernier message: 23/06/2004, 11h53

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