Создание графических приложений в среде MATLAB
Создание и управление размерами графического окна
Для создания графического окна служит команда figure.
Будем рассматривать три графических объекта
gcf – текущее графическое окно;
gca – текущие оси;
gco – текущий графический объект;
Для работы с этими объектами в существуют две функции: get и set. Функция get предназначена для получения значений свойств, а функция set предназначена для установки новых значений.
Простейший вид функции set
set(указатель на объект, ’свойство’, ’значение’).
Для получения свойств объекта необходимо ввести
get(указатель на объект, ’свойство’).
Создадим графическое окно с указателем имени и установим требуемые размеры этого окна.
HFig = figure
Положение графического окна и его размеры определяется функцией Position
get(gcf,'Position')
По умолчанию,
ans =
232 246 560 420
в пикселях.
Изменим
left = 232;
bottom = 258;
width = 560;
height = 260;
set(gcf,'Position', [left bottom width height], 'Color', 'w');
Создадим окно без меню команд
set(gcf,'Position', [left bottom width height], 'Color', 'w','MenuBar','none');
Для создания графического окна во весь экран выполним команды
% Нахождение размеров экрана
SCRsize =get(0, 'ScreenSize')
left = SCRsize(1)
bottom=SCRsize(2);
width=SCRsize(3);
% высота окна начинается с учетом ширины заголовка экрана
height=SCRsize(4)-19;
set(gcf,'Position', [left bottom width height], 'Menu', 'none','Color', 'w')
Если окон несколько, то команда
figure(HFig)
делает окно текущим.
Пример.
clear all
HFig1 = figure;
HFig2 = figure;
left = 232;
bottom = 258;
width = 560;
height = 260;
set(HFig1,'Position', [left bottom width height], 'Color', 'w');
figure(HFig2)
% Нахождение размеров экрана
SCRsize =get(0, 'ScreenSize')
left = SCRsize(1)
bottom=SCRsize(2);
width=SCRsize(3);
% высота окна начинается с учетом ширины заголовка экрана
height=SCRsize(4)-19;
set(gcf,'Position', [left bottom width height], 'Menu', 'none','Color', 'w')
Очистка текущего окна осуществляется командой clf.
Свойства осей
Построим графики двух функций.
clear all
HFig = figure;
left = 232;
bottom = 258;
width = 560;
height = 260;
set(HFig,'Position', [left bottom width height], 'Color', 'w');
x = -2*pi:pi/24:2*pi;
f = cos(x);
g = sin(x);
gr1 = plot(x,f);
grid
hold on
gr2 = plot(x,g);
Изменяем свойства осей
%убираем прямоугольную сетку вокрух оси
set(gca, 'Box', 'off')
%определяеи название шрифта и размер шрифта
set(gca, 'FontName','Times New Roman Cyr','FontSize',10)
%определяем пределы изменения осей
set(gca,'YLim', [-1.5 1.5], 'XLim', [-2*pi 2*pi])
xlabel('Ось {\itx} ')
ylabel('Ось {\ity}')
title('Графики функций sin({\itx}) и cos({\ity})', 'FontName','Courier')
Можно осям давать имя, например
hAxes1 = axes
set(hAxes1,..)
Очистка текущих осей осуществляется командой cla.
Свойства графика
set(gr1,'Color', 'b', 'LineWidth', 2, 'LineStyle', '--');
set(gr2,'Color', 'r', 'LineWidth', 2, 'LineStyle', '-.');
Добавим точки пересечения графиков:
X = [-7*pi/4 -3*pi/4 pi/4 5*pi/4]
Y = [sin(-7*pi/4) sin(-3*pi/4) sin(pi/4) sin(5*pi/4)]
gr7 = line([X(2) X(4)], [Y(2) Y(4)])
set(gr7, 'Color', 'm','LineWidth',1);
gr3 = line(X(1),Y(1));
set(gr3,'Marker', 'v', 'MarkerFaceColor','m', 'MarkerEdgeColor', 'm', 'Markersize', 8)
gr4 = line(X(2),Y(2));
set(gr4,'Marker', 'o', 'MarkerFaceColor','w', 'MarkerEdgeColor', 'k', 'Markersize', 8)
gr5 = line(X(3),Y(3));
set(gr5,'Marker', 's', 'MarkerFaceColor','k', 'MarkerEdgeColor', 'k', 'Markersize', 8)
gr6 = line(X(4),Y(4));
set(gr6,'Marker', '^', 'MarkerFaceColor','g', 'MarkerEdgeColor', 'g', 'Markersize', 8)
gr7 = line([X(2) X(4)], [Y(2) Y(4)])
set(gr7, 'Color', 'm','LineWidth',1);