Смекни!
smekni.com

Графика в системе Maple V (стр. 6 из 12)

Чуть позже мы рассмотрим построение на одном рисунке графиков плотности и векторного поля, а также создание более наглядных жирных стрелок.

13.6.6. Графики в разных системах координат

В пакете plots имеется множество функций для построения графиков в различных системах координат. Объем книги не позволяет воспроизвести примеры на все виды таких графиков, ибо их многие сотни. Да это и не надо — во встроенных в справочную систему примерах можно найти все нужные сведения. Так что ограничимся лишь парой примеров применения функции tubeplot(C, options), позволяющей строить весьма наглядные фигуры в пространстве, напоминающие трубы или иные объекты, образованные фигурами вращения.

На рис. 13.32 показана одна из таких фигур. Она поразительно напоминает раковину улитки. Функциональная окраска достигнута доработкой графика с помощью панели форматирования. Смысл параметра С (в документе Conchoid) легко понять из этого примера.


Рис. 13.31. Двумерный график типа векторного поля.


Рис. 13.32. Построение графика «улитки».

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

на рис. 13.33, показывающий фигуру «цепи». Не правда ли реалистичность этой фигуры поражает воображение?


Рис. 13.33. Фигура «цепи», построенная с применением функции tubeplot.

Можно немало размышлять о том, как природа «узнала» о математических закономерностях, положенных в основу тех или иных геометрических объектов, или, возможно, о гениальности людей, сумевших найти такие закономерности для природных объектов. В наше время Maple V открывает огромные возможности для таких людей.

13.6.7. Графики типа трехмерного векторного поля

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

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

13.6.8. Контурные трехмерные графики

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


Рис. 13,34. Построение векторного поля в трехмерном пространстве.


Рис. 13.35. График трехмерной поверхности с контурными линиями.

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

13.6.9. Техника визуализации сложных пространственных фигур

Приведенные выше достаточно простые примеры дают представление о высокой степени визуализации геометрических фигур с помощью пакета plots. Здесь мы рассмотрим еще несколько примеров визуализации трехмерных фигур. Многие видели катушки индуктивности, у которых провод того или иного диаметра намотан на тороидальный магнитный сердечник. Математическая абстракция такой катушки показана на рис. 13.36.


Рис. 13.36. Top с обмоткой — толстой спиралью.

В документе (рис. 13.36) для функции tubeplot использовано довольно большое число параметров-опций. Не всегда их действие очевидно. Поэтому на рис. 13.37 показано построение трех взаимно пересекающихся торов с разными типами их построения. Этот рисунок дает также наглядное представление о возможности построения нескольких графических объектов (представленных функциями р1, р2 и рЗ) с помощью функции tubeplot.

Наконец, на рис. 13.38 показано построение тора с тонкой обмоткой. Рекомендуется внимательно просмотреть запись функции tubeplot в этом примере и в примере, показанном на рис. 13.36. Можно также поэкспериментировать с опциями графика, от которых сильно зависит его представительность и наглядность.

В ряде случаев наглядно представленные фигуры можно строить с применением объединения однотипных фигур. Пример графика подобного рода представлен на рис. 13.39. Здесь готовится список графических объектов s, смещенных по вертикали. С помощью функции display они воспроизводятся на одном графике, что повышает реалистичность изображения.

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


Рис. 13.37. Три пересекающихся тора с разным стилем построения.


Рис. 13.38. Top с тонкой обмоткой.

plots. Параметр п этой процедуры задает число элементарных фигур, из которых строится полная фигура. Таким образом, высотой фигуры (или шириной «шины») можно управлять. Возможность задания практически любых графических процедур средствами Maple-языка существенно расширяет возможности системы Maple.


Рис. 13.39. Построение фигуры, напоминающей шину автомобиля.

Наглядность графиков типа графика плотности и векторного поля может быть улучшена их совместным применением. Пример его показан на рис. 13.40.


Рис. 13.40. Пример совместного применения графиков плотности и векторного поля.

Этот пример иллюстрирует использование «жирных» стрелок для обозначения векторного поля. Наглядность графика повышается благодаря наложению стрелок на график плотности, который лучше, чем применение стрелок, дает представление о плавности изменения высоты поверхности, заданной функцией f.

13.6.10. Построение анимационных 20-графиков

Визуализация графических построении и результатов моделирования различных объектов и явлении существенно повышается при использовании средств «оживления» (анимации) изображений.

Пакет plots имеет две простые функции для создания анимационных графиков.

Первая из этих функций служит для создания анимации графиков, представляющих функцию одной переменной х — F:

anirnate(F, х, t) или animate(F, х, t,o)

При этом параметр х задает пределы изменения по переменной х, а параметр t — пределы изменения дополнительной переменной t. Суть анимации заключается в построении серии картинок (как в мультфильме), причем каждая картинка (фрейм) связана с изменяемой во времени переменной t. Если надо явно задать число кадров N анимации, то в качестве опции о надо использовать опцию frame=N. Рис. 13.41 показывает применение функции animate.


Рис. 13.41. Первый стоп-кадр анимации.

В документе рис. 13.41 строятся две функции — не создающая анимации функция sin(x) и создающая анимацию функция sin(i*x)/(i*x), причем в качестве переменной t задана переменная i. Именно ее изменение и создает эффект анимации.

При исполнении функции animate и выделении полученного графика появляется панель проигрывания анимационных клипов. Она имеет кнопки управления с обозначениями, принятыми у современных магнитофонов. Пустив кнопку пуска (с треугольником, острием обращенным вправо), можно наблюдать изменение вида кривой для функции sin(i*x)/(i*x).

К сожалению, картинки в книгах всегда неподвижны и воспроизвести эффект анимации трудно. Ограничимся приведением еще одного стоп-кадра (рис. 13.42).

Нетрудно заметить, что на нем показана функция sin(i*x)/(i*x) в иной фазе, чем на рис. 13.41.


Рис. 13.42. Второй стоп-кадр анимации.

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

13.6.11. Построение анимационных ЗО-графиков

Аналогичным образом может осуществляться и анимация трехмерных фигур. Для этого используется функция animate3d:

animate3d(F,x, y,t,o)

Здесь F — описание функции (или функций), х, у и t — диапазоны изменений переменных х, у и t. Для задания числа кадров N надо использовать необязательную опцию о в виде frame=N.

На рис. 13.43 показано построение анимационного графика. После задания функции, график которой строится, необходимо выделить график и запустить анимационный проигрыватель — как это описывалось для анимации двумерной графики.

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