2012-08-21 5 views
1

Je suis nouveau dans l'outil matlab. Je veux dessiner beaucoup de lignes dans ma GUI dans matlab. Les outils standard dans matlab n'ont pas de contrôle comme la forme ou la ligne et ainsi de suite.dessiner une ligne dans matlab GUI

mon interface utilisateur incluent les autres contrôles comme le bouton poussoir et le texte statique.

Répondre

3

Malheureusement, vous ne pouvez pas utiliser la commande line() pour dessiner directement sur la figure. Cependant, il y a un truc: vous pouvez faire un axe invisible parce que la visibilité ne se propage pas aux enfants. Dessiner sur un axe invisible, est presque aussi bon que de dessiner sur la figure directement. Voici un exemple:

f = figure; 
a = axes; 
set(a, 'Visible', 'off'); 
%# Stretch the axes over the whole figure. 
set(a, 'Position', [0, 0, 1, 1]); 
%# Switch off autoscaling. 
set(a, 'Xlim', [0, 1], 'YLim', [0, 1]); 

%# Create all the controls. 
uicontrol('Parent', f, 'Style', 'edit', 'String', 'Input...'); 

%# Draw! 
for y = 1 : 9 
    line([0.1, 1], [1 - y/10, 0.5], 'Parent', a) 
end 

Edit: Bien sûr, il est une bonne idée de désactiver l'échelle automatique des axes. Sinon, le dessin est beaucoup moins prévisible.

+0

merci Mehrwolf, quand j'utilise le code ci-dessus, à la course, l'ouverture de deux fenêtres, le mon interface utilisateur et une fenêtre avec le nom "Figure 1". je pense que je dois changer la figure (1); –

+0

@hamedajorloo: Oui, vous avez raison. 'figure (1)' apportera le chiffre non. 1 en haut. J'ai changé cela dans le code. – Mehrwolf