Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
matlab.doc
Скачиваний:
3
Добавлен:
01.04.2025
Размер:
2 Мб
Скачать
☆

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

Наиболее реалистичный вид имеют графики трехмерных поверхностей, в которых ими-тируется освещение от точечного источника света, расположенного в заданном месте коорди-натной системы. Графики имитируют оптические эффекты рассеивания, отражения и зеркаль-ного отражения света. Для получения таких графиков используется команда surfl:

  • surfl(. . .) аналогична команде surf(. . .), но строит график трехмерной поверхности с под-светкой от источника света;

  • surfl(X, Y, Z, S) строит поверхность с подсветкой от источника света, положение которо-го в системе декартовых координат задается вектором S=[Sx, Sy, Sz]ж

  • surfl(. . ., ‘cdata’) при построении имитирует эффект отраженияж

  • surfl(X, Y, Z, S, К) задает построение трехмерной поверхности с параметрами, заданны-ми вектором K=[ka, kd, ks, spread], где ka – коэффициент фоновой подсветки, kd – коэф-фициент диффузного отражения, ks – коэффициент зеркального отражения, spread – ко-эффициент глянцевитости.

Ниже представлен пример применения команды surfl:

>

> % Построение поверхности,

>> % освещенной точечным источником

>> [X, Y]=meshgrid([-3:0.15:3]);

>> Z=sin(X)./(X.^2+Y.^2+0.3);

>> surfl(X, Y, Z)

>> colormap(gray)

>> shading interp

>> colorbar

Трехмерные контурные графики

Т

рехмерный контурный график представляет собой расположенные в пространстве ли-нии равного уровня, полученные при расслоении трехмерной фигуры рядом секущих плос-костей, расположенных параллельно опорной плос-кости фигуры. При этом, в отличие от двумерного контурного графика, линии равного уровня отобра-жаются в аксонометрии. Для получения трехмер-ных контурных графиков используется команда contour3:

  • contour3(. . .) имеет синтаксис, аналогичный команде contour(. . .), но строит линии рав-ного уровня в аксонометрии с использова-нием фнкциональной окраски (окраска меня-ется вдоль оси Z).

Например:

>> contour3(peaks(20));

>> colormap(gray)

л а б о р а т о р н а я р а б о т а № 12

  1. При помощи команды plot3 постройте график функции трех переменных.

  2. Постройте эту же 3D-поверхность крестиками.

  3. Получите сетчатый график с окраской.

  4. Объедините полученный график с контурным графиком ее проекции на плоскость, расположенным под поверхностью.

  5. Постройте трехмерную поверхность с окраской.

  6. Задайте окраску оттенками серого цвета.

  7. Устраните излбражение сетки. и задайте интерполяцию для оттенков цвета объемной поверхности.

  8. Задайте дополнительное построение контурного графика проекции фигуры на опорную плоскость.

  9. Постройте освещенную трехмерную поверхность.

  10. Получите трехмерный контурный график.

Л е к ц и я № 25, 26

Графика MATLAВ. Оформление и комбинирование графиков

Установка титульной надписи

После того, как график уже построен, MATLAB позволяет выполнить его форматирова-ние или оформление в нужном виде. Соответствующие этому средства описаны ниже. Так, для установки над графиком титульной надписи используется следующая команда:

  • title(‘string’) – установка на двухмерных и трехмерных графиках титульной надписи, за-данной строковой константой string.

Установка осевых надписей

Для установки надписей возле осей х, у и z используются следующие команды

  • xlabel(‘string’)

ylabel(‘string’)

zlabel(‘string’)

Соответствующая надпись задается символьной константой или переменной ‘string’. Пример установки титульной надписи и надписей по осям графиков приводится ниже

>> [x,y]=meshgrid([-3:0.1:3]);

>> z=sin(x)./(x.^2+y.^2+0.3);

>> surfl(x,y,z)

>> colormap(gray)

>> shading interp

>> colorbar

>> title('График трехмерной поверхности')

>> xlabel('Ось х')

>> ylabel('Ось y')

>> zlabel('Ось z')

Используемые надписи делают рисунок более наглядным.

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