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

Interfaces Graphiques Discussion :

Récupérer valeurs d'un data cursor


Sujet :

Interfaces Graphiques

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Mars 2015
    Messages : 14
    Points : 15
    Points
    15
    Par défaut Récupérer valeurs d'un data cursor
    Bonjour,

    dans un fichier .m, je fais afficher une courbe 3D avec 'mesh'.

    Avec le data cursor, je clique sur un endroit de cette fonction pour récupérer un point de coordonnées (x,y,z) qui m'intéresse. Ce point, je peux le récupérer dans une variable du workspace (clic droit -> export data cursor to workspace).

    Seulement, j'aimerais récupérer cette variable pour pouvoir la traiter dans la suite de mon fichier .m, et non pas dans le workspace.

    Y a-t-il un moyen de faire passer une variable d'un workspace jusqu'à mon fichier .m (ou un autre) ?

    PS : récupérer ces coordonnées avec ginput n'est vraiment pas pratique pour une fonction 3D, il semblerait que cette fonction ne gère pas la perspective.

    Merci d'avance !

  2. #2
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2015
    Messages : 16
    Points : 16
    Points
    16
    Par défaut
    Bonjour,

    Les informations du ton curseur qui se trouve dans le workspace sont accessibles :

    - Double clique sur cursor_info dans le workspace (nom par défaut)
    - Double clique sur Position

    Cela te mène à une matrice, qui comporte tes 3 coordonnées. Par défaut (suivant le nom que tu as donné à cursor_info) ta matrice s'appelle : cursor_info.Position

    Tu peux par la suite effectuer des calculs sur cette matrice.

    En espérant t'avoir aidé.

  3. #3
    Membre actif
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2013
    Messages : 189
    Points : 242
    Points
    242
    Par défaut
    Salut,

    C'est possible en activant le datacursormode je te conseille de lire la doc associée pour voir les différents comportements possibles (callbacks, etc..).

    petit exemple ou tu récupères la position du datacursor dans le .m (variable Pos), via le datacrusormode et la fonction getCursorInfo (issue de l'aide Matlab)

    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
     
    fig = figure(1);
    z = peaks;
    plot(z(:,30:35))
    dcm_obj = datacursormode(fig);
    set(dcm_obj,'DisplayStyle','datatip',...
        'SnapToDataVertex','off','Enable','on')
     
    disp('Click on a line to display a data tip, then press Return.')
    pause                         % Wait while the user does this.
    fig;
     
    c_info = getCursorInfo(dcm_obj);
    Pos = c_info.Position
    set(c_info.Target,'LineWidth',2)  % Make selected line wider

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Mars 2015
    Messages : 14
    Points : 15
    Points
    15
    Par défaut
    Merci, en effet j'ai réussi à obtenir quelque chose avec ta méthode.

    Le seul problème, c'est que ce que me renvoie la variable Pos n'est pas exactement égal à ce que m'indique le curseur sur ma figure 3D.

    Par exemple, je suis au point : (1,1,1), et la variable Pos va me rendre un truc du genre (0.8,1.5,1.2).

    Etant donné la précision des calculs que je dois effectuer, je peux pas me permettre ça. Et j'ignore pourquoi il me fait ça...


    ***EDIT***

    En fait, le problème vient du fait que j'affiche ma courbe dans mon interface, et je ne fais pas apparaître une nouvelle figure (avec une nouvelle figure, ça marche).

    J'affiche cette courbe à l'aide d'un subplot suivi d'un mesh, pourtant impossible de la passer au figure_handle de datacursormode, vous auriez une idée ?

Discussions similaires

  1. récuperer la position d'une valeur avec data cursor
    Par sdecorme dans le forum MATLAB
    Réponses: 14
    Dernier message: 28/08/2013, 12h22
  2. récupérer valeurs data frame
    Par Florence Magnin dans le forum R
    Réponses: 4
    Dernier message: 03/06/2013, 12h49
  3. [ActionScript] Récupérer valeur balise <param />
    Par JohnBlatt dans le forum Flash
    Réponses: 1
    Dernier message: 18/07/2005, 14h50
  4. CR9 - Récupérer valeurs multiples d'un champ paramètre
    Par CR9-Deb dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 06/07/2005, 16h08
  5. récupérer valeur d'un ID après insertion
    Par rikidi dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 26/08/2003, 22h21

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