Maple 9.5/10 в математике, физике и образовании - Владимир Дьяконов
Шрифт:
Интервал:
Закладка:
8.5.5. График плотности
Иногда поверхности отображаются на плоскости как графики плотности — чем выше высота поверхности, тем плотнее (темнее) окраска. Такой вид графиков создается функцией densityplot. Она может записываться в двух форматах:
densityplot(expr1, х=а..b,у=с..d)
densityplot(f,a..b,c..d)
где назначение параметров соответствует указанному выше для функции contourplot.
На рис. 8.26 (верхняя часть) дан пример построения графика такого типа. Нетрудно заметить, что в плоскости XY график разбит на квадраты, плотность окраски которых различна. В нашем случае плотность окраски задается оттенками серого цвета.
Рис. 8.26. Графики плотности и поля векторов
Обычно графики такого типа не очень выразительны, но имеют свои области применения. К примеру, оттенки окраски полупрозрачной жидкости могут указывать на рельеф поверхности дна емкости, в которой находится эта жидкость.
8.5.6. Двумерный график векторного поля
Еще один распространенный способ представления трехмерных поверхностей — графики полей векторов. Они часто применяются для отображения полей, например электрических зарядов. Особенность таких графиков в том, что для их построения используют стрелки, направление которых соответствует направлению изменения градиента поля, а длина — значению градиента. Так что термин «поле векторов» надо понимать в смысле, что поле графика заполнено векторами.
Для построения таких графиков в двумерной системе координат используется функция fieldplot:
fieldplot(f, r1, r2)
fieldplot(f, r1, r2, ...)
где f — вектор или множество векторов, задающих построение; r1 и r2 — пределы.
На рис. 8.26 в нижней части документа показан вид одного из таких графиков. Следует отметить, что для получения достаточного числа отчетливо видных стрелок надо поработать с форматированием графиков. Иначе графики этого типа могут оказаться не очень представительными. Так, слишком короткие стрелки превращаются в черточки и даже точки, не имеющие острия, что лишает графики наглядности.
8.5.7. Трехмерный график типа implicitplot3d
Трехмерные поверхности также могут задаваться уравнениями неявного вида. В этом случае для построения их графиков используется функция implicitplot3d:
implicitplot3d(expr1,х=а..b,y=c..d,z=p..q,<options>)
implicitplot3d(f,a..b,c..d,p..q, <options>)
На рис. 8.27 показаны два примера построения любопытных объемных фигур с помощью функции implicitplot3d.
Рис. 8.27. Примеры применения функции implicitplot3d
Эти примеры, взятые из справки, хорошо иллюстрируют технику применения функции implicitplot3d. С ее помощью можно строить весьма своеобразные фигуры, что, впрочем, видно и из приведенных примеров. Для наглядности фигур рис. 8.40 они несколько развернуты в пространстве с помощью мыши.
8.5.8. Графики в разных системах координат
В пакете plots имеется множество функций для построения графиков в различных системах координат Объем книги не позволяет воспроизвести примеры всех видов таких графиков, ибо их многие сотни. Да это и не надо — во встроенных в справочную систему примерах можно найти все нужные сведения. Так что ограничимся лишь парой примеров применения функции tubeplot(C, options), позволяющей строить весьма наглядные фигуры в пространстве, напоминающие трубы или иные объекты, образованные фигурами вращения.
На рис. 8.28 показана одна из таких фигур. Она поразительно напоминает раковину улитки. Функциональная окраска достигнута доработкой графика с помощью панели форматирования — она, как и контекстное меню правой клавиши мыши, показана на рис. 8.28.
Рис. 8.28. Построение графика — «раковина улитки»
Эта функция может использоваться и для построения ряда трубчатых объектов в пространстве. При этом автоматически задается алгоритм удаления невидимых линий даже для достаточно сложных фигур. Это наглядно иллюстрирует пример на рис. 8.29, показывающий фигуру «цепи». Не правда ли, реалистичность этой фигуры поражает воображение?
Рис. 8.29. Фигура «цепи», построенная с применением функции tubeplot
Можно долго размышлять о том, как те или иные математические закономерности описывают предметы реального мира, положенные в основу тех или иных геометрических объектов или, возможно, о гениальности людей, сумевших найти такие закономерности для многих из таких объектов. В наше время Maple открывает огромные возможности для таких людей.
8.5.9. Графики типа трехмерного поля из векторов
Наглядность ряда графиков можно существенно увеличить, строя их в трехмерном представлении. Например, для такого построения графиков полей из векторов можно использовать графическую функцию fieldplot3d. В отличие от функции fieldplot она строит стрелки как бы в трехмерном пространстве (рис. 8.30). Возможности смены осей о оформления «ящика» графика иллюстрирует контекстное меню правой клавиши мыши, показанное на рис. 8.30.
Рис. 8.30. Построение поля в трехмерном пространстве с помощью векторов
Все сказанное об особенностях таких двумерных графиков остается справедливым и для графиков трехмерных. В частности, для обеспечения достаточной наглядности нужно тщательно отлаживать форматы представления таких графиков.
8.5.10. Контурные трехмерные графики
В отличие от векторных графиков, контурные графики поверхностей, наложенные на сами эти поверхности, нередко повышают восприимчивость таких поверхностей — подобно изображению линий каркаса. Для одновременного построения поверхности и контурных линий на них служит функция contourplot3d. Пример ее применения показан на рис. 8.31.
Рис. 8.31. График поверхности с контурными линиями
Для повышения наглядности этот график доработан с помощью контекстной панели инструментов графиков. В частности, включена функциональная окраска и подобраны углы обзора фигуры, при которых отчетливо видны ее впадина и пик. О возможностях переформатирования графика свидетельствует контекстное меню, показанное на рис. 8.31.
8.5.11. Визуализация сложных пространственных фигур
Приведенные выше достаточно простые примеры дают представление о высоком качестве визуализации геометрических фигур с помощью пакета plots. Здесь мы рассмотрим еще несколько примеров визуализации трехмерных фигур. Многие видели катушки индуктивности, у которых провод того или иного диаметра намотан на тороидальный магнитный сердечник. Некую математическую абстракцию такой катушки иллюстрирует рис. 8.32.
Рис. 8.32. Тор с обмоткой — толстой спиралью
В документе рис. 8.32 для функции tubeplot использовано довольно большое число параметров. Не всегда их действие очевидно. Поэтому на рис. 8.33 показано показано построение тора с тонкой обмоткой. Здесь также показано меню правой клавиши мыши, позволяющее менять стиль построения графика. Можно также поэкспериментировать с управляющими параметрами графика, от которых сильно зависят его представительность и наглядность.
Рис. 8.33. Тор с тонкой обмоткой
В ряде случаев наглядно представленные фигуры можно строить путем объединения однотипных фигур. Пример графика подобного рода представлен на рис. 8.34. Здесь готовится список графических объектов s, смещенных по вертикали. С помощью функции display они воспроизводятся на одном графике, что повышает реалистичность изображения.
Рис. 8.34. Построение фигуры, напоминающей шину автомобиля
Последний пример имеет еще одну важную особенность — он иллюстрирует задание графической процедуры, в теле которой используются функции пакета plots. Параметр n этой процедуры задает число элементарных фигур, из которых строится полная фигура. Таким образом, высотой фигуры (или шириной «шины») можно управлять. Возможность задания практически любых графических процедур средствами Maple-языка существенно расширяет возможности Maple.
Наглядность таких графикой, как графики плотности и векторных полей может быть улучшена их совместным применением. Такой пример показан на рис. 8.35.
Рис. 8.35. Пример совместного применения графиков плотности и векторного поля
Этот пример иллюстрирует использование «жирных» стрелок для обозначения векторного поля. Наглядность графика повышается благодаря наложению стрелок на график плотности, который лучше, чем собственно стрелки, дает представление о плавности изменения высоты поверхности, заданной функцией f.