Générateur de couleur aléatoire sous MATLAB

Classé dans : Matlab | 4

On se propose de faire une interface graphique qui permettra d’afficher, à l’aide d’un bouton, une couleur aléatoire sur un axe.

Pour cela, l’IHM devra contenir :

  • un objet Figure: qui sera la fenêtre principale de l’IHM
  • un objet Axes : pour l’affichage de la couleur
  • un objet Uicontrol de type Pushbutton : pour générer la couleur

Dans la figure ci dessous, vous avez une illustration du résultat attendu:

 

Générateur de couleur
Générateur de couleur

 

Lorsque l’utilisateur clique sur l’objet Pushbutton, l’objet Axes change de couleur de façon aléatoire.

 

Solution :

Le code de l’interface graphique est écrit dans un seul fichier mpt_gencouleur.m. Ce fichier contient à la fois la gestion des objets et de leurs actions.

 

Dans un premier temps, on crée la figure:

% Création de l'objet Figure
fig = figure('units', 'pixels', ...
    'position', [520 380 300 250], ...
    'name', 'Générateur de couleur aléatoire');

 

Ensuite, on crée le bouton «Générer une couleur» :

% Création du bouton "Générer une couleur"
uicontrol('style', 'pushbutton', ...
    'units', 'pixels', ...
    'position',[75 15 150 20], ...
    'String', 'Générer une couleur', ...
    'callback', @mpt_genC);

 

Création de l’axe qui va changer de couleur:

% Création de l'objet Axes qui permettra d'afficher la couleur
axes('units', 'pixels', ...
    'position', [25 70 250 150], ...
    'tag','axes1');

 

Stockage des identifiants des objets dans la structure « handles »:

% Stockage des identifiants utiles dans la structure "handles"
handles = guihandles(fig);
guidata(fig,handles)

 

On crée la fonction callback appelée par l’action sur le bouton « Générer une couleur » :

function mpt_genC(obj,event)
% Fonction associée au Callback de l'objet Pushbutton
% obj : identifiant de l'objet Pushbutton
% event : événement liés à l'objet Pushbutton
% Récupération des identifiants utiles
fig = get(obj,'parent');
handles = guidata(fig);
 
% Modification de la couleur de l'objet Axes
set(handles.axes1, 'color', rand(1,3));

 

MPT_gencouleur.m

4 Responses

  1. DAH-KENANGNON Justin

    Je trouve le « matlabpourtous.com », super cool.
    Je vous felicite , vous tous qui vous en occupez.
    J’aime bien Matlab, je vient de trouver un site qui m’aidera beaucoup!!!

    Une seule chose que je voudrais proposer est: ne pourra-ton pas un lien pour telecharger des fichier version pdf sur matlab en francais ?

    Cordialement, Justin(Jmlab)

    • matlabpourtous

      Bonjour Justin,
      Merci pour votre message.
      Je trouve votre proposition très intéressante, je vais travailler dessus.

      Admin

  2. Johnk692

    Wow, marvelous blog layout! How long have you been blogging for? you made blogging look easy. The overall look of your website is great, as well as the content!

  3. Smithd180

    I actually got into this post. I located it to be fascinating and loaded with exclusive points of interest. I like to read material that makes me believe. Thank you for writing this fantastic content.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *