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 :

Sauvegarder les coordonnées d'un point dans une figure 3D


Sujet :

MATLAB

  1. #1
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut Sauvegarder les coordonnées d'un point dans une figure 3D
    Bonjour à tous,

    J'aurais voulu savoir si vous aviez une méthode à me conseiller. Voici le contexte :

    J'affiche une géométrie 3D à l'aide patch (ce sont plusieurs surfaces définies par des suites de sommets).
    J'aimerai que mon programme se mette en pause le temps que l'utilisateur clic sur un de ces sommets, puis les coordonnées de ce sommet sont enregistrés dans une variable, et ensuite le programme suit son cours.

    Pour récupérer les coordonnées du point cliqué, je pensais utiliser data cursor :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    fig = figure;
    dcm_obj = datacursormode(fig);
    set(dcm_obj,'DisplayStyle','datatip','SnapToDataVertex','on','Enable','on');
    point = [];
    while isempty(point)
          waitforbuttonpress;
          point = getCursorInfo(dcm_obj);
    end
    La fonction while avec la condition sur point, c'est pour permettre à l'utilisateur de faire des rotation et des zooms pour accéder au point sur lequel il veut cliquer. Mais là j'ai un soucis : dans le cas ou l'utilisateur ne clic sur aucun point, comment sortir de la boucle et continuer le programme?

    Ca doit être tout bête mais je ne vois pas de solution? Enfin si vous avez des idées, merci d'avance!

    EDIT : bon en fait j'ai choisi une solution de facilité : le bidouillage, je pose la question à l'utilisateur si il veut choisir un point... J'aurais préféré quelque chose de plus rapide car il peut y avoir beaucoup de figure, donc faire par exemple entrée pour ne pas sélectionner de point, mais bon, la solution que j'ai choisi a au moins l'avantage d'être rapide à mettre en place.
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  2. #2
    Expert confirmé
    Avatar de duf42
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2007
    Messages
    3 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Points : 4 661
    Points
    4 661
    Par défaut
    Bonjour,

    D'après l'aide, WAITFORBUTTONPRESS permet d'identifier un clic de souris ou l'appui sur une touche du clavier, tu pourrais utiliser cet fonctionnalité pour par exemple quitter ta boucle lorsque l'utilisateur appuie sur une touche:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    ...
    while isempty(point)
          id = waitforbuttonpress;
          if (id == 0)
              point = getCursorInfo(dcm_obj);
          else
              break;
          end
    end
    ...
    Bonne journée,
    Duf
    Simulink & Embedded Coder

    Au boulot : Windows 7 , MATLAB r2016b
    A la maison : ArchLinux mais pas MATLAB

  3. #3
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Super, c'est exactement ce que je cherchais! (c'est vrai que je n'avais même pas regardé la doc de WAITFORBUTTONPRESS ...)

    Merci beaucoup
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

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

Discussions similaires

  1. Récupérer les coordonnées de plusieurs DIV dans une boucle PHP
    Par renaud26 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 05/11/2009, 10h23
  2. Extraire coordonnées entre deux points dans une image
    Par Pg043 dans le forum Traitement d'images
    Réponses: 4
    Dernier message: 16/01/2009, 09h35
  3. Coordonnée d'un point dans une figure
    Par christophe_halgand dans le forum MATLAB
    Réponses: 5
    Dernier message: 25/09/2008, 13h31
  4. Récupérer les coordonnées d'un pixel dans une image
    Par amine52002 dans le forum Langage
    Réponses: 1
    Dernier message: 30/06/2008, 14h52
  5. [VB.net] changer les coordonnées d'un Point dans un Path
    Par Speranza dans le forum Windows Forms
    Réponses: 3
    Dernier message: 14/06/2006, 11h28

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