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 :

Détection de clic


Sujet :

MATLAB

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    381
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 381
    Par défaut Détection de clic
    salut à tous

    Je bosse en ce moment sur une IHM en matlab et je dois réaliser une fonction qui me permette, apres avoir cliqué en 2 points d'un graph, de tracer la droite entre ces 2 points.
    Mais je ne parviens pas à réaliser la fonction permettant de détecter le clic.
    J'ai essayé avec actxcontrol et ça a l'air de marcher, mais le problème c'est que cela fait apparaître une figure blanche avec un cercle noir, qui masque le graph.
    Peut-être qu'en modifiant le premier champ de la fonction (j'ai laissé celui proposé dans l'aide, je ne comprends pas ce que représente ce champ en fait) on peut remédier à ce problème, mais je n'ai pas réussi pour l'instant.
    Donc si quelqu'un a une solution a proposer ca m'aiderait beaucoup.
    Au pire y aurait-il moyen de modifier la fonction actxcontrol de Matlab afin de faire disparaître la figure gênante ?

    merci d'avance pour vos indications ^^

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 39
    Par défaut
    Si tu veux sélectionner deux points d'un graphe utilise ginput(2).
    Regarde l'aide de ginput.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    381
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 381
    Par défaut
    merci merci !! je ne connaissais absolument pas cette fonction !!

    ca me sera tres utile ! je suppose que ca porte sur l'objet courant ?

    en tout cas merci beaucoup ^^

    En fait je l'avais fait en utilisant une WindowButtonDownFcn avec CurrentPoint mais c'est vraiment relou parce qu'il faut convertir les coordonnées en pixels sur l'écran en coordonnées sur le graph !

    Le probleme maintenant consiste à effacer la derniere droite !
    si une droite a déja été tracée, en cliquant sur 2 nouveaux points il faut effacer la derniere droite et tracer la nouvelle...et j'aimerais éviter de refresh...y'aurait il moyen de mettre un handle sur une droite pour l'effacer ?

    autre soucis : le curseur en croix de matlab "dépasse" du graph et couvre toute la fenetre...c'est moche...y'a pas une option pour le limiter à la zone de graph ? Sinon faudra que j'en crée un moi meme et ca ca va etre relou :'(

    EDIT : le probleme d'effacer la droite est résolu ^^
    le truc du curseur je pense pas qu'il y ait de solution miracle...donc je vais laisser tomber mais je reste ouvert à toute suggestion !

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 39
    Par défaut
    Comment fais tu pour effacer ta droite ? tu recommences tout le tracer ?

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    381
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 381
    Par défaut
    non c'est ce que je voulais éviter...je mets un handle sur ma droite et je l'efface à chaque fois...voila mon code ca peut servir pour d'autres personnes :
    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
    31
    fig=figure('Position',[100,100,500,400],'Pointer','fullcrosshair');
    axes; grid; 
    handles.h=0;
    guidata(fig,handles);
    set(fig,'WindowButtonMotionFcn',@savepoint);
    %=========================================================================
    function savepoint(obj,eventdata)
    handles=guidata(gcbo);
    [z1,z2] = ginput(2);
    hAxes = get(gcf,'CurrentAxes');
    X = get(hAxes,'Xlim');
    Y = get(hAxes,'Ylim');
    axis([X Y]);
    x1 = z1(1);
    x2 = z1(2);
    y1 = z2(1);
    y2 = z2(2);
    pente = (y2 - y1)/(x2 - x1);
    ordonnee_origine = y1 - pente*x1;
     
    abscisse = X(1):0.001:X(2);
    if handles.h~=0 delete(handles.h); end;
    h=line(abscisse,pente*abscisse+ordonnee_origine);
    S1 = ['pente ',num2str(pente)];
    S2 = ['Ordonnee a l''origine ',num2str(ordonnee_origine)];
     text(X(2)-(X(2)-X(1))/3,Y(1)+(Y(2)-Y(1))/4,S1,'FontSize',12,'FontWeight','bold','HorizontalAlignment','left',...
        'BackGroundColor',[1 1 1]);
     text(X(2)-(X(2)-X(1))/3,Y(1)+(Y(2)-Y(1))/6,S2,'FontSize',12,'FontWeight','bold','HorizontalAlignment','left',...
        'BackGroundColor',[1 1 1]);
    handles.h=h;
    guidata(gcbo,handles);
    EDIT : meme pas besoin de valeur de handle par défaut...on peut utiliser le test "isempty"

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

Discussions similaires

  1. Détection des clics via Google Analytics
    Par mikesquake dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 24/06/2010, 15h23
  2. Détection du clic sur F5 dans l'action
    Par amine1980 dans le forum Struts 1
    Réponses: 5
    Dernier message: 01/12/2008, 19h35
  3. détection de clic de souris sur un objet pixmap
    Par bouchecousue dans le forum Qt
    Réponses: 16
    Dernier message: 15/05/2008, 13h09
  4. Détection du clic gauche dans une cellule
    Par Lexot2 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 16/08/2006, 04h53
  5. Désactivation et détection de clic sur bouton radio
    Par Prue dans le forum Général JavaScript
    Réponses: 19
    Dernier message: 21/04/2006, 13h50

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