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 :
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?
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
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.
Partager