Générateur de couleur aléatoire sous MATLAB
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:
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));
Comments
Color
Au top merci !
Vous pouvez aussi tester ceci : https://www.dejete.com/de-couleur