8(495)909-90-01
8(964)644-46-00
pro@sio.su
Главная
Системы видеонаблюдения
Охранная сигнализация
Пожарная сигнализация
Система пожаротушения
Система контроля удаленного доступа
Оповещение и эвакуация
Контроль периметра
Система домофонии
Парковочные системы
Проектирование слаботочных сетей
Аварийный
контроль
Раздел: Документация

0 ... 357 358 359 360 361 362 363 ... 365

Пример:

» х = [0 10-10]; » у = [-10100]; >> tri = delaunay(х, у) tri =

451

521 4 3 5 3 25

Функция delaunay основана на программе Qhull и допускает задание тех же самых параметров алгоритма триангуляции, что и Qhull (см. http://www.qhull.org/).

Функция delaunay используется, например, для задания треугольной сетки при визуализации функций, область определения которых не прямоугольная (см. функции trimesh И trisurf ниже).

□ trimesh — построение каркасной поверхности функции на произвольной (не обязательно прямоугольной) области. Область задается сеткой из треугольников. Сетка генерируется при помощи функции delaunay (см. выше).

•trimesh (tri, х, у, z)—построение каркасной модели поверхности на треугольной сетке с координатами узлов, заданных в векторах х и у, и значениями функции в векторе z. Матрица tri содержит информацию о триангуляции.

Поверхность графика функции является полигональным объектом (Patch) (свойства полигональных объектов и работа с ними описаны в разд. "Объект Patch, цветовое оформление объектов"главы 9).

•trimesh (tri, х, у, z, с)—указание цвета полигонального объекта в матрице с.

Задание свойств поверхности производится при помощи функции set или непосредственно во входных аргументах:

•trimesh(..., PropName, PropValue, PropName, PropValue, . . .) .

•h = trimesh (...) — возвращает указатель на созданный полигональный объект.

Применение set для изменения свойств графических объектов рассматривается в главе 9.


Листинг ПЗ содержит пример построения функции на шестиугольной области. Векторы х и у с координатами узлов сетки генерируются при помощи параметрически заданных окружностей с достаточно большим шагом изменения параметра. Результат приведен на рис. ПЗ.

Листинг ПЗ. Построение функции на непрямоугольной области

% Задание вектора со значениями параметра t = 0:pi/3:2*pi;

% Генерация внешних узлов области (вершин шестиугольника) х = sin(t); у = cos(t);

I Генерация двух слоев внутренних узлов х = Ix 2/3*sin[t)]; у = {у 2/3*cos(t)]; х = [х l/3*sin<t.) I ; у = [у l/3*cos(t)];

% Задание дополнительного узла в центре начала координат x(length(x> + 1) = О,-у(length(у) +1) = 0; % Построение сетки tri = deiaunay(х, у);

% Вычисление значений функции в узлах сетки и запись значений в вектор z z = -х.г - у."2,-subplotd, 2, 1]

% Отображение графика функции на треугольной сетке и подпись осей

:isur£ = trimesh(tri, х, у, z) ;

set(Hsurf, EdgeColor, 1k1, LineWidth, 2)

xlabel(x>;

ylabel(у);

% Вывод сетки в то же графическое окно на другие оси и подпись осей subplot (1, 2, 2)

I Указание в качестве четвертого аргумента нулевых значений приводит к I построению сетки

Hmesh = trimesh(tri, х, у, zeros(size(х))); set(Hmesh, EdgeColor, k1, LineWidth, 2) xlabel(x);


ylabel(y);

% Определение двумерных осей view(2)

Рис. ПЗ. График функции на треугольной сетке и сетка

□trisurf — построение каркасной закрашенной поверхности функции на произвольной (не обязательно прямоугольной) области. Использование аналогично trimesh (см. выше).

Оформление графиков

□clabel — помещение подписей к линиям уровня на контурных графиках.

•clabel (с, h) — входными аргументами являются: матрица с с информацией о линиях уровня и вектор указателей h на сами линии, являющиеся многоугольниками (графическими объектами типа patch). Данные аргументы инициализируются при соответствующем обращении к contour, contourf или contour3 (см. разд. "Контурные графики" главы 3).

•clabel (с, h,v)— маркируются только линии уровня, указанные в векторе v.

•clabel (С, h, manual > — переход в режим ручной разметки линий уровня. Щелчок мышью по линии уровня приводит к появлению на



0 ... 357 358 359 360 361 362 363 ... 365