Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Matlab BSU.doc
Скачиваний:
11
Добавлен:
08.09.2019
Размер:
1.04 Mб
Скачать

Создание массивов данных для трехмерной графики.

В приведенном выше примере функция meshgrid используется при создании матриц x и y, которые служат для построения трехмерных графиков. Формат команды meshgrid:

  • [X, Y] = meshgrid(x, y) преобразует область определения, заданную векторами x и y, в матрицы X и Y, используемых при вычислении функции двух переменных и построении трехмерных графиков. Строки матрицы X дублируют вектор x, а столбцы Y – вектор y;

  • [X,Y] = meshgrid(x) – аналогична [X,Y] = meshgrid(x,x);

  • [X, Y, Z] = meshgrid(x, y, z) возвращает трехмерные массивы, используемые для вычисления функций трех переменных и построения трехмерных графиков.

Построение графиков трехмерных поверхностей.

Команда plot3 является трехмерным аналогом команды plot. Она строит аксонометрическое изображение поверхностей и представлена следующими формами:

  • plot3(x, y, z) строит массив точек, представленных векторами x, y, z и соединяет их отрезками прямых;

  • plot3(X, Y, Z)строит линии по точкам, координаты которых берутся из столбцов матриц X, Y, Z.

В качестве примера рассмотрим построение трехмерной спирали и графика функции z = x*x+y*y:

subplot(1, 2, 1);

t = 0:pi/50:10*pi;

plot3(sin(t), cos(t), t);

axis square; grid on; box on;

subplot(1,2,2);

[x y]=meshgrid([-3:.25:3]);

z=x.^2+y.^2;

plot3(x, y, z);

axis tight; box on;

Наиболее представительными и наглядными являются сетчатые графики трехмерных поверхностей с заданной или функциональной окраской. Для построения сетчатых параметрических поверхностей используются команды mesh, meshc, и meshz:

  • mesh(X, Y, Z, C) строит сетчатую поверхность Z(X, Y), цвет определяется матрицей C. Если X и Y – векторы, то их размерность должна определяться соотношениями: length(X) = n и length(Y) = m, где

[m, n] = size(Z). В этом случае точки пересечения сеточных линий имеют координаты (X(j), Y(i), Z(i, j)), а X и Y соответствуют столбцам и строкам матрицы Z соответственно. Если X и Y – матрицы, то узлы сетки имеют координаты (X(i, j), Y(i, j), Z(i, j));

  • mesh(X, Y, Z) – аналог предыдущей команды, цвет определяется высотой поверхности;

  • mesh(Z) – строит сетчатую поверхность, используя по умолчанию соотношения: X = 1:n и Y = 1:m, где [m, n] = size(Z);

  • meshс()– помимо графика трехмерной поверхности строит ее проекцию в виде линий равного уровня (графика типа contour);

  • meshz()– строит трехмерную поверхность в виде многочисленных столбиков.

В качестве примера рассмотрим построение графика функции sin(r)/r:

[X, Y] = meshgrid(-8:.5:8);

R = sqrt(X.^2 + Y.^2) + eps;

Z = sin(R)./R;

subplot(1, 2, 1);

mesh(Z, 'EdgeColor', 'k');

subplot(1, 2, 2);

surfl(X, Y, Z);

shading interp; colormap(gray);

здесь константа eps используется для того, чтобы избежать деления на ноль. Команда surfl строит сетчатые графики с использованием закраски ячеек сетки и подсветкой от точечного источника света. Команда colormap(gray) задает окраску тонами серого цвета, а команда shading interp обеспечивает устранение изображения сетки и задает интерполяцию для оттенков цвета объемной поверхности.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]