Материал: Matlab. Практический подход. Самоучитель

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Глава 2. Графика в Matlab

При вызове команды meshz(X,Y,Z) создается график, представленный на рис. 2.37.

Рис. 2.37. Трехмерная поверхность с "подложкой"

В этом случае график отображается с "подложкой": область под поверхностью представляет собой заполненный объем. Это довольно специфический режим отображения поверхностей, который, тем не менее, бывает в некоторых случаях весьма удобен и полезен.

С помощью функции mesh() создаваемые трехмерные поверхности отображаются в виде сетки. Если необходимо сделать поверхность сплошной, обычно используют функцию surf(). Результат создания трехмерной поверхности с помощью команды surf(X,Y,Z) представлен на рис. 2.38.

Кроме базовой сетки, выполнена также заливка цветом. Во всем остальном график схож с тем, что создавался функцией mesh() (см. рис. 2.36).

Функция surfc() позволяет отображать не только трехмерную поверхность, но и контурные линии в горизонтальной координатной плоскости – в полной аналогии с функцией meshc(). На рис. 2.39 представлен результат создания графика с помощью команды surfc(X,Y,Z).

В некоторых случаях удобным может быть режим, в котором график (трехмерная поверхность) "подсвечивается" (рис. 2.40).

81

Самоучитель Matlab

Рис. 2.38. Трехмерная поверхность с заливкой цветом

Рис. 2.39. Трехмерная поверхность с заливкой цветом и контурными линиями

82

Глава 2. Графика в Matlab

Рис. 2.40. Трехмерная поверхность в режиме выделения цветом

Речь идет о цветовом выделении поверхности графика так, как если бы он находился под действием источника света. Для отображения графика в таком режиме используют функцию surfl(). В частности, график (поверхность) на рис. 2.40 создан с помощью команды surfl(X,Y,Z).

Параметрические кривые и поверхности

Скажите, доктор Ватсон, Вы понимаете всю важность моего открытия?

К/ф "Приключения Шерлока Холмса и доктора Ватсона. Знакомство"

Как известно, самый простой способ задать пространственную кривую состоит в том, чтобы параметризировать ее, то есть ввести параметр, и координаты точек на пространственной кривой представить в виде функции от этого параметра. Для создания пространственных кривых в Matlab используют функцию plot3(). В самом простом случае аргументами функции указывают векторы координат точек на пространственной кривой. Пример такой кривой представлен на рис. 2.41.

Для создания пространственной кривой использовалась следующая последовательность команд:

83

Самоучитель Matlab

Рис. 2.41. Пространственная кривая

>>t=0:0.01:2*pi;

>>x=cos(10*t).*sin(t/2);

>>y=sin(10*t).*sin(t/2);

>>z=cos(t/2);

>>plot3(x,y,z)

>>grid on

>>axis equal

Вданном случае речь идет о своеобразной винтовой линии, накрученной на

сферу. Пространственная кривая задается в параметрическом виде зависи-

мостями x(t) = cos(10t)sin(t 2) , y(t) = sin(10t)sin(t2) и z(t) = cos(t2) , где параметр 0 ≤ t ≤ 2π . Точка с координатами (x,y,z) находится на поверхности единичного радиуса (с центром в начале координат). Для реализации векторов с координатами точек на кривой создается вектор значений параметра t параметрической зависимости (команда t=0:0.01:2*pi). На основе этого вектора командами x=cos(10*t).*sin(t/2), y=sin(10*t).*sin(t/2) и z=cos(t/2) создается три вектора с координатами. Затем командой plot3(x,y,z) строится пространственная кривая. Командами grid on и axis equal отображается координатная сетка и устанавливается одинаковый масштаб по координатным осям.

Впараметрическом виде может быть задана и поверхность. В этом случае координаты точек на поверхности определяются как функции от двух пара-

84

Глава 2. Графика в Matlab

метров. Процесс создания параметрически заданной поверхности в Matlab мало отличается от создания поверхности, заданной в явном виде. В частности, на основе параметрических зависимостей строятся матрицы узловых точек и значения функции в этих узловых точках, после чего поверхность строится с помощью функции mesh() или surf().

В качестве иллюстрации рассмотрим процесс построения сферы, при условии, что она задана в параметрическом виде. Для сферы единичного радиуса с центром в начале координат координаты на поверхности сферы задаются зависимостями x(ϕ, θ) = cos(ϕ)sin(θ), y(ϕ, θ) = sin(ϕ)sin(θ) и z(ϕ, θ) = cos(θ) , где параметры 0 ≤ ϕ ≤ 2π и 0 ≤ θ π . Построить сферу можно с помощью серии следующих команд:

>>phi=0:0.1:2*pi;

>>theta=0:0.1:pi;

>>[Phi,Theta]=meshgrid(phi,theta);

>>X=cos(Phi).*sin(Theta);

>>Y=sin(Phi).*sin(Theta);

>>Z=cos(Theta);

>>mesh(X,Y,Z)

>>axis equal

Результат представлен на рис. 2.42.

Рис. 2.42. Сфера построена на основе параметрических зависимостей

85

Источник: https://studfile.net/preview/16433384/