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

0 ... 54 55 56 57 58 59 60 ... 365

-4 -4

Рис. 3.42. Параметрически заданная линия (piot3)

Сгенерируйте при помощи двоеточия вектор-столбец и вектор-строку, содержащие значения параметров на заданном интервале (важно, что и — вектор-столбец, a v — вектор-строка!):

» и = (-2*pi:0.1*pi:2*pi); » v = [-2*pi:0.1*pi:2+pi];

Далее сформируйте матрицы х, y, содержащие значения функций л(н,у), >(m,v) в точках, соответствующих значениям параметров при помощи внешнего произведения векторов (звездочка без точки):

» X = 0.3*u*cos(v); » Y = 0.3*u*sin(v);

Матрица z должна быть того же размера, что х и y и, кроме того, она должна содержать значения, соответствующие значениям параметров. Если бы в

функцию z(«,v) входило произведение и и v, то матрицу z можно было заполнить аналогично х и у при помощи внешнего произведения. С другой стороны, функцию г(ы,\)можно представить в виде г(«, v) = 0.6-wg(v), где g(v) = 1. Поэтому для вычисления z снова примените внешнее произведение на вектор-строку той же размерности, что v, состоящую из единиц:

» Z = 0.6*u*ones(size(v));


Все требуемые матрицы созданы. Используйте теперь любую из описанных выше функций для построения трехмерных графиков. Например, последовательность команд

» surf(X, Y, Z) » colorbar

>> xlabel(\itx = 0.3 \itu cos \itv) » ylabel("\ity =0.3 \itu sin \itv) » zlabel(\itz = 0.6 \itu )

приводит к графику, изображенному на рис. 3.43.

y=0.3us/nv -2 -2x=03ucosv

Рис. 3.43. График параметрически заданной поверхности

Постройте самостоятельно прозрачную каркасную поверхность эллипсоида, заданного соотношениями

.y{h,v) = cosh-cosv, y(u,v) = 0.7cosm-sinv , s(w,i) = 0.8-sin«3 «,ve[-2п, 2тт].

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

» u = (-pi:0.1*pi:pi);

» v = -pi:0.l*pi:pi;

» X = cos(u)*cos(v);

» Y = 0.9*cos(u)*sin(v>;

» Z = 0.8*sin(u)*ones(size(v));

» meshfX, Y, Z)

» hidden off


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

Построение освещенной поверхности

Предположим, что поверхность графика функции сделана из материала с определенными свойствами отражения и поглощения света, и, кроме того, можно управлять расположением источника света. Эти две возможности вместе с поворотом графика позволяют получить естественно выглядящую поверхность, повернутую и освещенную под нужным углом. Для построения освещенной поверхности применяется функция surf 1.

Постройте освещенную поверхность, задаваемую на прямоугольной области ле[-1, 1], уе[0, 1] формулой

z(jc,y) = 4-sin2rcr-cosl.57iy-l-jc2 у-{l-у).

При использовании surfi удобно задавать цветовые палитры: copper, bone, gray, pink, в которых интенсивность цвета изменяется линейно. Для получения плавно изменяющихся оттенков следует использовать shading interp. Команды, приведенные ниже, приводят к получению требуемой освещенной поверхности, изображенной на рис. 3.44.

» [X, У] = meshgrid(-l:0.05:1, 0:0.05:1);

» Z = 4*sin(2*pi*X).*cos(1.5*pi*Y).*(1 - Х.Л2).*У.*(1 - Y);

» surf1(Х, Y, Z)

» colormap(copper1)

» shading interp

» xlabel(x)

» ylabeK y")

» zlabel(z)

По умолчанию источник света имеет азимут, больший на 45°, чем наблюдатель, и тот же угол возвышения. Дополнительным четвертым аргументом surf 1 может быть вектор-строка из двух элементов — азимута и угла возвышения источника света. Измените, например, азимут источника на -90° по отношению к наблюдателю, а угол возвышения установите в ноль.



0 ... 54 55 56 57 58 59 60 ... 365