Система MATLAB обладает широкими возможностями построения трехмерных графиков. В данном разделе рассмотрим несколько функций, позволяющих создавать трехмерные графики всреде MATLAB.
Для создания трехмерного графика функции от двух переменных z=f(x, у) необходимо:
1) сгенерироватьдве матрицы X и Y с координатами узлов сетки на прямоугольной области определения функции, определяемой значениями переменных x и y;
2) необходимо вычислить значение функции z=f(X, Y) в узлах сетки и записать полученные значения в матрицу значений функции Z. После этого можно приступить к построению графика функции в трехмерной области графическими средствами среды MATLAB.
Для формирования матрицы, определяющей координаты прямоугольной сетки в среде MATLAB существует функция meshgrid со следующим синтаксисом:
[X, Y]=meshgrid (x, y)
где: x, y – векторы, задающие прямоугольную область определения функции z=f(x, у); X, Y –матрицы, содержащие координаты узлов сетки на прямоугольной области.
Функция meshgrid преобразует область векторов х и у в массивы X и Y, соответственно,при этом строки матрицы Х являются копиями вектора х, а столбцы матрицы Y – копиями вектора у. Матрицы Х и Y являются матрицами одинаковых размеров.
|
|
Для построения каркасна поверхности в трехмерном пространстве в среде MATLAB используется функция mesh, имеющая следующий синтаксис:
Mesh(X, Y, Z)
Цвет линий каркаса поверхности соответствует значениям функции z=f(x, у). Система MATLAB рисует только видимую часть каркаса поверхности. С помощью команды hiddenoff можно сделать каркас поверхности прозрачным, сделав видимой скрытую от наблюдателя часть изображения. Команда hiddenon убирает невидимую часть поверхности, возвращая графику прежний вид.
Используя функцию surf в среде MATLAB можно построить каркасную поверхность графика функции, заливая каждую клетку поверхности цветом, зависящим от значения функции z=f(x, у) в точках, соответствующих узлам координатной сетки. Функция имеет следующий синтаксис:
Surf(X, Y, Z)
По умолчанию в среде MATLAB при формировании каркасной поверхности с помощью функции surf цвет в пределах каждой клетки поверхности остается постоянным. Команда shadinginterp позволяет получить поверхность, плавно залитую цветовой палитрой. Команда shadingflat позволяет убрать каркасные линии с поверхности. При помощи команды shadingflat можно получить исходный вид каркасной поверхности.
Изменение цветового оформления каркасных поверхностей в среде MATLAB можно осуществить с помощью функции colormap:
Colormap(attribute)
где: attribute –параметр, определяющий цветовое оформление поверхности. Более подробно о различных значениях данного параметра можно узнать в справочной системе MATLAB (doccolormap).
|
|
В том случае, если координаты точек линии в трехмерном пространстве заданы с помощью массивов, а не функциональной зависимости, то в среде MATLAB удобнее использовать функцию plot3 для построенияданной поверхности. Функция plot3 имеет следующий синтаксис:
Plot3 (x, у, z)
где: x, y, z – векторы одинакового размера.
В данном случае функция plot3 обеспечивает построение линии в трехмерном пространстве, проходящей через точки с координатами x(i), y(i), z(i).
Входные аргументы функции plot3 может быть представлены в видематриц:
Plot3(X, Y, Z)
где: X, Y, Z –матрицы одинакового размера,
В данном случае функция plot3 обеспечивает построение линии в трехмерном пространстве, проходящей через точки с координатами X(i,:), Y(i,:), Z(i,:) для каждого столбца матриц X, Y, Z.
Функция plot3 может иметь входной параметр, определяющий стиль трехмерного графика, значения параметра стилей аналогичны значениям соответствующего параметра функции plot.