Смекни!
smekni.com

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

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

13.4.2. Построение фигур в различных системах координат

Как отмечалось, вид графика трехмерной поверхности существенно зависит от выбора координатной системы. Рис. 13.16 показывает пример построения нелинейного конуса в цилиндрической системе координат. Для задания такой системы координат используется параметр coords=cylindrical.


Рис. 13.16. Нелинейная цилиндрическая поверхность.

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

Приведем еще один пример построения трехмерной поверхности — на этот раз в сферической системе координат (рис. 13.17). Здесь функция задана вообще элементарно просто — в виде числа 1. Но поскольку выбрана сферическая система координат, то строится поверхность шара единичного радиуса.

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

О том, насколько необычным может быть график той или иной функции в различных системах координат свидетельствует рис. 13.18. На нем показан график параметрически заданной функции от одной координаты t — sin(t"3), построенный в сферической системе координат.

Кстати, рис. 13.18 иллюстрирует возможность одновременного наблюдения более чем одного окна — в данном случае двух окон. В одном окне задано построение графика, а в другом — построен сам график. При построении графика в отдельном


Рис. 13.17. Построение шарообразной поверхности в сферической системе координат.


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

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

13.4.3. Построение графиков параметрически заданных поверхностей

На рис. 13.19 показано построение поверхности при полном ее параметрическом задании. В этом случае поверхность задается тремя формулами, содержащимися в списке.


Рис. 3.19. График ЗО-поверхности при полном параметрическом ее задании.

В данном случае функциональная окраска задана из меню, поэтому в состав функции соответствующий параметр не введен.

13.4.4. ЗО-график как графический объект

Принадлежность функции plot и plot3D к функциям (в ряде книг их именуют операторами, командами или процедурами) наглядно выявляется при создании графических объектов.

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

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

13.4.5. Задание 30-графики в виде процедуры

Язык программирования Maple V допускает применение в процедурах любых внутренних функций, в том числе графических. Пример такого применения дает рис. 13.21.


Рис. 13.20. Пример задания и вывода трехмерного графического объекта


Рис. 13.21. Пример создания и применения процедуры ЗО-графики.

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

13.4.6. Построение ряда трехмерных фигур

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

Для построения таких графиков достаточно вместо одной функции указать ряд функций. Пример такого построения для двух функций показан на рис. 13.22.


Рис. 13.22. Пример построения двух SD-фигур, пересекающихся в пространстве.

Фигура на рис. 13.22 показана после ее коррекции и функциональной окраски в «ручном» режиме — с применением инструментальной панели окна графики.

13.5. Графические структуры двумерной и трехмерной графики

13.5.1. Понятие о графических структурах

Функции PLOT и PLOT3D, с именами, набранными большими буквами, позволяют создавать графические структуры, содержащие ряд графических объектов si, s2, s3 и т.д. Каждый объект может представлять собой точку или фигуру, полигон, надпись и т.д., позиционированную с высокой точностью в заданной системе координат. Координатные оси также относятся к графическим объектам. Важно отметить, что функции PLOT и PLOT3D одновременно являются данными, описывающими графики. Их можно записывать в виде файлов и (после считывания файлов) представлять в виде графиков. Особые свойства этих функций подчеркиваются записью их прописными буквами.

13.5.2. Графические структуры двумерной графики

Графическая структура двумерной графики задается в виде:

PLOT(sl, s2, s3,...,o);

где si, s2, s3 .... — графические объекты (или элементарные структуры-примитивы), о — общие для структуры опции).

Основными объектами являются:

POINTS([xl,yl],[x2,y2),...[xn,ynj) — построение точек, заданных их координатами;

CURVES([[xll,yll],...[xln,yln]],[[x21,y21],...[x2n,y2n]],...[[xml,yml]„.. [xmn,yrnn]]) — построение кривых по точкам;

POLYGONS([[xll,yll¦,...[xln,yln]],[[x21,y2H,...[x2n,y2n]],...[[xml,yml],... [xmn.ymn]]) — построение замкнутой области — полигона (последняя точка должна совпадать с первой);

ТЕХТ([х, у], 'string', horizontal, vertical) — вывод текстовой надписи 'string', позиционированной координатами [х,у] с горизонтальной или вертикальной ориентацией. Опция horizontal может иметь значения ALIGNLEFT или ALIGNRIGHT, указывающие, в какую сторону (влево или вправо) идет надпись. Аналогично опция vertical может иметь значения ALIGNABOVE или ALIGNBELOW, указывающие, в каком направлении (вверх или вниз) идет надпись.

При задании графических объектов (структур) si, s2, s3 и т.д. можно использовать описанные выше опции и параметры, например, для задания стиля STYLE-построения (POINT, LINE, PATCH, PATCHNOGRID), толщины линий THICKNESS (кроме координатных осей), символа SYMBOL, которым строятся точки кривых (BOX, CROSS, CIRCLE, POINT, DIAMOND и DEFAULT), стиля линий LINESTYLE, цвета COLOUR (например, COLOUR(HUE.O) для закраски непрерывной области), типа шрифта FONT, вывода титульной надписи TITLE(string), имени объекта NAME(string), стиля координатных осей AXESSTY-LE (BOX, FRAME, NORMAL, NONE, или DEFAULT) и т.д.

Следует отметить, что опции в графических структурах задаются несколько иначе — с помощью круглых скобок. Например, для задания фонта TIMES ROMAN с размером символов 16 надо записать FONT(TIMES, ROMAN, 16), а для задания стиля координатных осей в виде ящика (прямоугольника) — AXESSTYLE(BOX) и т.д.

На рис. 13.23 показан пример графических построений при использовании основных структур двумерной графики.

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

13.5.3. Графические структуры трехмерной графики

Графические структуры трехмерной графики строятся на основе функции plot3d:

PLOT3D(sl, s2,s3,....,o)

В качестве элементарных графических структур можно использовать уже описанные выше объекты POINTS, CURVES, POLYGONS и TEXT — разумеется, с

добавлением в списки координат третьей координаты. Пример такого построения дан на рис. 13.24.


Рис. 13.23. Пример использования структур 20-графики


Рис. 13.24. Пример создания ЗО-структуры.

Кроме того, могут использоваться следующие специальные трехмерные структуры. Одна из них — структура:

GRID(a..b,c..d,listlist) — задание поверхности над участком координатной плоскости [a,b]([c,d] по данным заданным списочной переменной listlist:= [[zll,...zln],[z21,...z2n],...[zml...zmn]] с размерностью nxm. Заметим, что эта переменная задает координату z для равноотстоящих точек поверхности.

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


Рис. 13.25. Пример задания графической структуры типа GRID.

Еще один тип трехмерной графической структуры это:

MESH(listlist) — задание трехмерной поверхности по данным списочной переменной listlist, содержащей полные координаты всех точек поверхности (задание последней возможно при неравномерной сетке).

Обычная форма задания этой структуры следующая:

MESH([[[xll,yll,zll],...[xln,yln,zln]], [[x21,y21,z21],...[x2n,y2n,z2n]], ... [[xml,yml,zml]...[xmn,ymn,zmn]]]).

Пример задания такой структуры представлен на рис. 13.26.

Описанные структуры могут использоваться и в программных модулях. Много примеров их описано в книге [38].