Учебник Математические пакеты
.pdfПостроить в полярной системе координат график функции
= sin( )√|cos( ) -2sin(t)+2 (рис.1.4.1-30). sin( )+75
--> exec("РИС14128.sce", 0)
Рис. 1.4.1-30 Построение графика функции в полярной системе координат
Построить график функции корреляции случайного процесса
(рис.1.4.1-31).
131
--> exec("РИС14131.sce", 0)
Рис. 1.4.1-31 Построение графика функции корреляции случайного процесса
132
--> exec("РИС14132.sce", 0)
Рис. 1.4.1-32 Построение графика функции амплитудного спектра частот прямоугольного импульса
Построить график сигнала амплитудной модуляции с одним тоном
(рис.1.4.1-33).
133
--> exec("РИС14133.sce", 0)
Рис. 1.4.1-33 Построение графика функции плотности вероятности случайного процесса
134
Построение простых геометрических форм
Кроме функций, представленных как аналитически, так и таблично иногда необходимо нарисовать в графическом окне простейшие геометрические фигуры. Это легко можно реализовать функцией plot.
В качестве содержательного примера рассмотрим следующую задачу: Построить в графическом окне графическую фигуру ромб, изображен-
ную на рис. 1.4.1-34. Затем задать координаты нескольких точек, а затем отметить их попадания в заданную область красной звездочкой и непопадания их в заданную область черной точкой.
|
|
y |
|
B |
|
1 |
|
-1 |
0 |
C |
x |
A |
1 |
|
|
|
|
||
-1 |
|
D |
|
Рис. 1.4.1-34. Ромб в системе координат x-y
Проведем формализацию поставленной задачи: Для этого запишем уравнение прямых – AB, BC, CD, DA:
AB: x-y=-1; BC: x+y=1; CD: x-y=1; DA: x+y=-1.
Для того, чтобы точка Mс координатами (x,y) принадлежала замкнутой заштрихованной области, необходимо выполнить следующие условия:
x-y -1
x-y 1
x y 1x y -1
|x-y| 1
|x y|
1
.
На Рис. 1.4.1-35 приведено решение поставленной задачи с помощью функции Fromb и ее решение.
135
exec("РИС14135.sce", 0)
Рис. 1.4.1-35. Пример построение фигуры ромб
В Scilab имеются высокоуровневые средства для построения простейших геометрических фигур:
arg_ properties — описание свойств объекта дуги;
rectangle properties — описание прямоугольника свойство сущности;
segs_properties — описание свойств объекта сегментов;
xarc —рисование части эллипса;
xarcs — рисование части набора эллипсов;
xarrows — рисование набор стрелок;
xfarc — заливка части эллипса;
xfarcs — заливка частей набора эллипсов;
136
xfrect — заливка прямоугольника;
xrect— рисование прямоугольник;
xrects— рисование или заливки набора прямоугольников;
xsegs— рисование несвязанных сегментов.
1.4.2.Низкоуровневая графические средства
иосновные графические объектов
Иерархия графических объектов
В Scilab графические окна и их содержимое представлены иерархическими объектами. Верхний уровень иерархии – это figure (Графическое окно).
Каждое графическое окно (figure) определяет по меньшей мере одного потомка – объект axes (Оси). В свою очередь каждый объект axes содержит набор наследуемых объектов двух типов. Первый тип представляет объекты, которые являются основными графическими объектами для отображения 2D и 3D графиков и различных геометрических фигур, например, polylines (Ломанные линии), rectangles (Прямоугольники), arcs (Дуги), segs (Сегменты), compound (Склеивание, Соединение) и другие [13]. Второй тип представляет объекты для построения графического интерфейса пользователя (GUI), к которым в первую очередь относится объект uicontrol, позволяющий создавать графические интерактивные компоненты такие как ползунки, числовые поля, изменяемые кнопкой мыши, редактируемые таблицы, редактируемые текстовые поля в графических элементах, флажки, группы кнопок, выпадающие списки, выпадающие меню кнопки и др. Все эти объекты являются прямыми потомками объекта figure, в которой они определены. Их свойства могут быть установлены и настроены через их указатели, как и для других графических объектов.
Главное в низкоуровневом графическом режиме заключается в том, чтобы сделать обмен свойствами графических объектов проще и эффективно. Этот графический режим имеет набор графических функций низкого уровня, используемых для управления свойствами объектов, такими, как данные, координаты и масштабирование, цвет и вид без необходимости повторять команды инициализации графики.
Все графические объекты, в том числе и figure, связаны между собой переменными Scilab, имеющими тип handle (Дескриптор). Дескриптор – это уникальный идентификатор (указатель), который связан с каждым экзем-
пляром созданного |
графического объекта. Используя |
этот дескриптор, |
|
можно добраться |
до свойств конкретного объекта |
используя функ- |
|
ции set и get. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
137 |
|
|
|
|
Как известно все графики в Scilab строятся в так называемых графических окнах – Figure, каждое из которых имеет идентификационный номер, ко-
торый является дескриптором графического окна (handle).
Рисование – это сложный процесс, который заключается в создании различных объектов в терминах объектно-ориентированного программирования. Например, сначала создается графическое окно – объект Figure, которое затем порождает потомков – объекты Children в виде объектов Axes (оси, которые отображаются на экране). У осей тоже есть потомки – линии графика функций, которые к ним привязываются.
Таким образом, каждое графическое окно в Scilab – это отдельный графический объект, обладающие большим набором свойств (Figure properties), которые отвечают за его внешний вид, а также содержащий множество подчиненных объектов, наследующие его свойства. При построении графиков происходит неявное обращение к рабочей области графического окна, когда, например, отображаются оси, наносится сетка, помечаются точки или эти точки соединяются отрезками прямых линий и т.д. Для построения графиков в системе есть множество предопределенных высокоуровневых функций, которые выполняют всю работу в графическом окне (п. 1.4.1).
На втором уровне иерархии находятся графические объекты Axes(Оси), которые обладают свойствами (Axes properties), позволяющими изменять координаты и тип осей, а также значения параметров по умолчанию для создания объектов следующего уровня.
У каждого объекта Axes два потомка: объекты Compound (Составной
объект) и Legend (Пояснения-Легенда).
Объект Legend представляет собой список графических объектов третьего уровня иерархии. Эти объекты обладают свойства (Legendentityproperties), которые указывают на тип линии, символы маркеров и их цвета.
Объект Compound (Составной объект) определяет взаимозависимости различных графических объектов и их глобальное свойство – отображение (видимость), в том числе объектов следующего уровня Polyline (Полилинии) – это ломанные линии отображающие графики, окружности, квадраты и др., которые устанавливают 2D и 3D свойства (Polyline properties) рисования графиков, фигур и поверхностей.
Например, одно из свойств Polyline properties – Visible, устанавливающее видимость графика, принимает значение on или off. А, например, другое свойство – Thickness, указывающее ширину линии в пикселях, принимает значение положительного числа.
Редактор объектов
Свойства всех объектов можно установить, как программно с помощью соответствующих функций, так и с помощью GraphicEditor (Графического Редактора). Сам GraphicEditor также может быть вызван и программно и из графического окна. На рис 1.4.2-1 показаны две панели окна GraphicEditor. В
138
одной панели – ObjectsBrowse (Браузер объектов) отображается иерархия объ-
ектов выбранной Figure(1), в другой – Object Properties (Свойства Объектов)
– значения соответствующих свойств.
Рис. 1.4.2-1 Окно графического редактора
В панели Objects Browse отображаются те объекты, значения свойств которых можно редактировать: Figure, Axes, Compound и другие.
Например, выбрав объект Figure, можно поменять название графика, его размещение на экране (X position=0, Y position=0 – левый верхний угол); размеры графика, сжав его по любой из осей; задать цвет заднего плана, поменять цветовую гамму.
Выбрав, например, редактирование осей Аxes, можно редактировать каждую из осей X, Y, Z: задать название оси; цвет (при этом цвет меняется у названия оси, сетки и разметки оси); задать размещение названия для оси X (наверху, внизу или посередине) и для оси Y (слева, справа или посередине). Кроме того, можно задать цвет метки, угол поворота, ее размер, фон, расстояние между линиями сетки, установить насечку между линиями и другое.
При последовательном выборе Figure, Axes и Compound, активизируются соответствующий объект Polyline, в котором можно менять вид и размеры маркеров, а также аппроксимировать наш график различными кривыми.
Графические объекты и их свойства
Для создания графического окна можно использовать функцию figure:
h=figure(id);
h=figure("Свойство1","Значение1",..., "Свойствоn" ,"Значениеn"),
139
где: id – необязательный целочисленный параметр, задающий номер окна; h – переменная типа handle, которая связана с набором свойств этого
окна и их значениями;
Свойствоn – название n-го свойства; Значениеn – значение n-го свойства и т.д.
Объекты всех уровней имеют определенные свойства. Так, например, свойство BackgroundColor – определяет цвет фона figure и может принимать соответствующие Значение в виде вектора 1×3 , элементы которого определяют цвет: красный, зеленый и синий, т. е. [R,G,B] ; Figure_name – строка, позволяющая задать заголовок окна; Position – определяет расположение figure на экране и может принимать соответствующее Значение в виде вектора 1×4, элементы которого определяют геометрический аспект фигуры [X Y ширина высота], где координаты x и y определяют расположение верхнего левого угла;
Например, оператор
f=figure('Figure_name','МТУСИ', 'position',[10 100 300 200]);
создает графическое окно с именем МТУСИ, показанное на рис.1.4.2-2.
Рис. 1.4.2-2 Графическое окно с именем МТУСИ
Причем Указатель (Дескриптор) графического окна записывается в переменную f тип handle. Размер и положение окна на экране компьютера можно задать с помощью параметра:
'position', [x y dx dy],
где: x, y – положение верхнего левого угла окна (по горизонтали и вертикали соответственно относительно верхнего левого угла экрана);
dx – размер окна по горизонтали ширина окна в пикселях;
140