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

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

MATLAB позволяет строить трехмерные линии, определенные формулами

x=x(t), y=y(t), z=z(t), t [a,b]

и поверхности, задаваемые зависимостями

x=x(u,v), y=y(u,v), z=z(u,v), u [a,b], v [c,d].

Функция plot3 визуализирует параметрически заданные линии, используя в качестве аргументов векторы, содержащие значения функций х(t), у(t) и z(t), вычисленные для значений параметра t.

Сначала следует сформировать век­тор t, что проще всего сделать, используя заполнение с постоянным шагом при помощи двоеточия, а затем вычислить и записать в векторы соответст­вующие значения функции.

!! Постройте график линии

x=e-|t-50|/50sint, y= e-|t-50|/50cost, z=t, t [0,100]

Также имеется возможность изменять тип и цвет линии, добавлять маркеры.

Например, рlot (х,у,z,'r:') рисует красную пунктирную линию.

Параметрически заданную поверхность можно построить при помощи лю­бой из функций, предназначенных для отображения трехмерных графиков. Важно только правильно подготовить аргументы. Дело в том, что функции x(u,v) и у(u,v) могут быть многозначны, что надо учесть при создании матриц с информацией о расположении узлов сетки на области построения и матрицы, содержащей значения функции z(u,v) в этих точках.

!! Заданы зависимости

x(u,v)=0.3·u·cosv, y(u,v)=0.3·u·sinv, z(u,v)=0.6·u,

u,v [-2π;2π].

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

!! Сформируйте матрицы x, у, содержащие значения функций х(и,v), y(u,v) в точках, соответствующих значениям параметров.

!! Сформируйте матрицу z.

!! Отобразите поверхность, заданную этими зависимостями.

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

x(u,v)=cosu·cosv, y(u,v)=0.7·cosu·sinv, z(u,v)=0.8·sinu,

u,v [-2π;2π].

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

Работа с несколькими графиками

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

MATLAB предоставляет следующие возможности работы с несколькими графиками:

  • вывод каждого графика в свое окно;

  • вывод нескольких графиков в одно окно (на одни координатные оси);

  • отображение в пределах одного окна нескольких графиков, каждого на своих осях.

Вывод графиков в отдельные окна

Команда figure(без аргументов), определенная в MATLAB, служит для создания пустого гра­фического окна и отображения его на экране. Окно становится текущим, т.е. все последующие графические функции будут осуществлять построение графиков в этом окне. Для получения нового графического окна следует снова использовать figure. Например, если последовательно построить графики в двух графических окнах: Figure №1 и Figure №2. Окно Figure №2 будет текущим, т. к. было создано последним Команды, набираемые далее, приведут к изменениям именно в этом окне. Для того чтобы сделать графи­ческое окно Figure№1 текущим, следует щелкнуть на нем мышкой, вернуться в рабочую среду MATLAB и продолжать ввод команд. Команды повлекут изменения в окне Figure №1. Для очистки всего текущего окна используется команда сlf (сокращение от сlеаr figure), а для того, чтобы убрать только график, но оставить оси, заголовок и названия осей, следует применить сlа (сокращение от сlеаr ахеs).

!! Постройте графики функций y1(x) = sinx∙еx на отрезке [-π, π] с шагом 0.1π и y2(x) = cosx∙еx на отрезке [-2π,2 π] с шагом 0.1π.

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

Для того чтобы очистить графическое окно с определенным указателем, следует ис­пользовать команду clf, аргументом которой будет имя этого указателя.