2012-08-21 2 views
1

Я новичок в инструменте matlab. Я хочу нарисовать много строк в моем графическом интерфейсе в Matlab. стандартные инструменты в Matlab не имеют такой формы, как форма или линия, и так далее.нарисовать линию в matlab GUI

Мой пользовательский интерфейс включает в себя другие элементы управления, такие как кнопка и статический текст.

ответ

3

К сожалению, вы не можете использовать команду line(), чтобы нарисовать ее непосредственно на рисунке. Однако есть трюк: вы можете сделать невидимую ось, потому что видимость не распространяется на детей. Опираясь на невидимую ось, почти так же хорошо, как рисовать на фигуре напрямую. Вот пример:

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: Конечно, это хорошая идея, чтобы отключить автомасштабирование осей. В противном случае рисунок намного менее предсказуем.

+0

благодарит Mehrwolf, когда я использую код выше, при запуске, открывая два окна, мой пользовательский интерфейс - это окно с именем «Рисунок 1». я думаю, я должен изменить цифру (1); –

+0

@hamedajorloo: Да, вы правы. 'figure (1)' приведёт цифру no. 1 сверху. Я изменил это в коде. – Mehrwolf

Смежные вопросы