Смекни!
smekni.com

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

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


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

13.6. Графика пакета plots 13.6.1. Общая характеристика пакета plots

Пакет plots содержит почти полсотни графических функции, существенно расширяющих возможности графики системы Maple V. В реализации R4 этот пакет содержит следующие функции:

——————————— animate Создает мультипликацию 2D графиков функций.
animated Создает мультипликацию 3D графиков функции.
changecoords Смена системы координат.
compiexplot Построение 20-графика на комплексной плоскости.
complexplot3d Построение 30-графика в комплексном пространстве.
conformal Конформный график комплексной функции.
contourplot Строит координатную систему контурши-м графика.
contourplot3d Строит контурный 30-график.
coordplot Строит координатную систему 20-графиков.
coordplotSd Строит координатную систему ЗО-графиков.
cylinderplot Строит график 3D поверхности в цилиндрических координатах.
densityplot Строит двумерный график плотности.
display Строит график списка графических объектов.
display3d Строит график списка трехмерных графических объектов.
fieldplot Строит график 2D векторного поля.
fieldplot3d Строит график 3D векторного поля.
gradplot Строит график 2D векторного поля градиента.
gradplot3d Строит график 3D векторного поля градиента.
implicitplot Строит 2D-гpaфик неявной функции.
implicitplot3d Строит ЗО-график неявной функции.
inequal Строит график решения системы неравенств.
listcontplot Строит 20-контурный график для сетки значении.
listcontplot3d Строит ЗО-контурныи график для сетки значении.
listdensityplot Строит 20-график плотности для сетки значении.
listplot Строит 20-график для листа значений.
listplot3d Строит ЗО-график для листа значении.
loglogplot Строит логарифмический 20-график функции.
logplot Строит полулогарифмический 2D- график функции.
matrixplot Строит ЗО-график со значениями Z, определенными матрицей.
odeplot Строит 2D или 3D график решения дифференциальных уравнений.
pareto Строит pareto-диаграммы (гистограмма + график линиями).
pointplot Строит 2D точечный график.
pointplot3d Строит 3D точечный график.
polarplot Строит график 2D кривой в полярной системе координат.
polygonplot Строит график одного или большего количества многоугольников.
polygonplot3d Строит график одного или большего количества многоугольников.
polyhedraplot Строит трехмерный график многогранника.
replot Перестраивает заново график.
rootlocus Строит график корней уравнения с комплексными неизвестными.
semilogplot Строит график функции с логарифмическим масштабом по горизонтали.
setoptions Устанавливает опции по умолчанию для 2D графиков.
setoptions3d Устанавливает опции по умолчанию для 3D графиков.
spacecurve Строит 3D пространственные кривые.
sparsematrixplot Строит ZD-график отличных от нуля значений матрицы.
sphereplot График 3D- поверхности в сферических координатах.
surfdata Строит ЗD-гpaфик поверхности по численным данным.
textplot Выводит на заданное место 2D-гpaфикa текст.
textplot3d Выводит на заданное место ЗD-rpaфикa текст.
tubeplot Строит ЗD-rpaфики типа трубы.

Среди этих функций надо отметить прежде всего средства построения графиков ряда новых типов (например, в виде линий равного уровня, векторных полей и т.д.), а также средства объединения различных графиков в один. Особый интерес представляют две первые функции, обеспечивающие оживление (анимацию) как двумерных графиков (animate), так и трехмерных (animate3d). Этот пакет вполне

заслуживает описания в отдельной книге. Но, учитывая ограниченный объем данной книги, мы рассмотрим лишь несколько характерных примеров его применения. Заметим, что для использования приведенных функций нужен вызов пакета, например, командой with(plots).

13.6.2. Построение графиков функций в двумерной полярной системе координат

В пакете plots есть функция для построения графиков в полярной системе координат. Она имеет вид polarplot(L,o), где L — объекты для задания функции, график которой строится и о — необязательные опции. На рис. 13.27 представлен пример построения графика с помощью функции polarplot.


Рис. 13.27. График, построенный с помощью функции polarplot.

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

13.6.3. Построение графиков линиями равного уровня

Графики, построенные с помощью линий равного уровня (их также называют контурными графиками) часто используются в картографии. Эти графики получаются, если мысленно провести через трехмерную поверхность ряд равноотстоящих плоскостей, параллельных плоскости, образованной осями Х и Y графика. Линии равных высот образуются в результате пересечения этих плоскостей с трехмерной поверхностью.

Для построения таких графиков используется функция contourplot, которая может использоваться в нескольких форматах:

contourplot(exprl,x=a..b,y=c..d)

contourplot(f,a..b,c..d)

contourplot([ exprf,exprg,exprh ],s=a..b,t=c..d)

contourplot([ f,g,h ],a..b,c..d)

contourplot3d(exprl,x=a..b,y=c..d)

contourplot3d(f,a..b,c..d)

contourplot3d([ exprf,exprg,exprh ],s=a..b,t=c..d) »'

contourplot3d([ f,g,h ],a..b,c..d)

Здесь — f, g и h — функции, expri — выражение, описывающее зависимость высоты поверхности от координат х и у, exprf, exprg и exprh — выражения, зависящие от s и t, описывающие поверхность в параметрической форме, а и b — константы вещественного типа, end — константы или выражения вещественного типа, х, y,,s и t — имена независимых переменных.

На рис. 13.28 показано построение графика линиями равного уровня для одной функции. Опция filled=true обеспечивает автоматическую функциональную окраску замкнутых фигур, образованных линиями равного уровня. Порою это придает графику большую выразительность, чем при построении только линий равного уровня.


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

Функция contourplot позволяет строить и графики ряда функций. Пример такого построения показан на рис. 13.29. Множество окружностей на этом рисунке создается четырьмя поверхностями, заданными функциями с1, с2, сЗ и с4.

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

«горой» — на графике линий равного уровня этого эффекта нет. Однако выразительность таких графиков сильно зависит от числа линий равного уровня.


Рис. 13.29. Пример построения графиков многих функций линиями равного уровня.

13.6.4. График плотности

Иногда трехмерные поверхности отображаются на плоскости как графики плотности окраски — чем выше высота поверхности, тем плотнее окраска. Такой вид графиков создается функцией densityplot. Она может записываться в двух форматах:

densityplot(exprl,x=a..b,y=c..d) densityplot(f,a..b,c..d),

где назначение параметров соответствует указанному выше для функции contour-plot.

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

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

13.6.5. График векторного поля двумерный

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


Рис. 13.30. График плотности для заданной функции.

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

fieldplot(f, rl, r2) или fieldplot(f, rl, r2, ...),

где f — вектор или множество векторов, задающих построение, и rl и r2 — пределы.

На рис. 13.31 показан вид одного из таких графиков. Следует отметить, что для получения достаточного числа отчетливо видных стрелок надо поработать с форматированием графиков. Иначе графики этого типа могут оказаться не очень представительными. Так, слишком короткие стрелки превращаются в черточки и даже точки, не имеющие острия, что лишает графики наглядности.