Maple 9.5/10 в математике, физике и образовании - Владимир Дьяконов
Шрифт:
Интервал:
Закладка:
arc arrow circle cone cuboid
curve cutin cutout cylinder disk
dodecahedron ellipse ellipticArc hemisphere hexahedron
hyperbola icosahedron line octahedron pieslice
point polygon rectangle semitorus sphere
tetrahedron torus
Вызов перечисленных примитивов осуществляется после загрузки пакета в память компьютера командой with(plottools). Только после этого примитивы пакета становятся доступными. Обычно примитивы используются для задания графических объектов, которые затем выводятся функцией display. Возможно применение этих примитивов совместно с различными графиками.
Большинство примитивов пакета plottools имеет довольно очевидный синтаксис. Например, для задания дуги используется примитив arc(c, r, а..b,…), где с — список с координатами центра окружности, к которой принадлежит дуга, r — радиус этой окружности, а..b — диапазон углов. На месте многоточия могут стоять обычные параметры, задающие цвет дуги, толщину ее линии и т.д. Конус строится примитивом cone(c,r,h…), где с — список с координатами центра, r — радиус основания, h — высота и т.д. В необходимых случаях стоит проверить синтаксис того или иного примитива с помощью справки по пакету plottools.
8.7.2. Пример применения двумерных примитивов пакета plottools
На рис. 8.40 показано применение нескольких примитивов двумерной графики для построения дуги, окружности, закрашенного красным цветом эллипса и отрезка прямой. Кроме того, на графике показано построение синусоиды.
Рис. 8.40 Примеры применения примитивов двумерной графики пакета plottools
Во избежание искажений пропорций фигур надо согласовывать диапазон изменения переменной x. Обычно параметр scalling=constrained выравнивает масштабы и диапазоны по осям координат, что гарантирует отсутствие искажений у окружностей и других геометрических фигур. Однако при этом размеры графика нередко оказываются малыми. Напоминаем, что эту параметр можно задать и с помощью подменю Projection.
8.7.3. Пример построения стрелок
Рис. 8.41 иллюстрирует построение средствами пакета plottools четырех разноцветных стрелок, направленных в разные стороны. Цвет стрелок задан списком цветов с, определенным после команды загрузки пакета. Для построения стрелок используется примитив arrow с соответствующими параметрами. Обратите внимание на наклон стрелок — он задан прибавлением 1 к аргументу тригонометрических функций. Уберите 1 и стрелки расположатся под прямым углом.
Рис. 8.41. Построение разноцветных стрелок, направленных в разные стороны
8.7.4. Пример построения диаграммы Смита
Примитивы могут использоваться в составе графических процедур, что позволяет конструировать практически любые типы сложных графических объектов. В качестве примера на рис. 8.42 представлена процедура SmithChart, которая строит хорошо известную электрикам диаграмму Смита (впрочем, несколько упрощенную). В этой процедуре используется примитив построения дуг arc. При этом задается верхняя часть диаграммы, а нижняя получается ее зеркальным отражением.
Рис. 8.42. Построение диаграммы Смита
Обратите внимание на то, что начиная с рис. 8.42 мы не указываем загрузку пакета plottools, поскольку она уже была проведена ранее. Однако надо помнить, что все примеры этого раздела предполагают, что такая загрузка обеспечена. Если вы использовали команду restart или только что загрузили систему Maple 9 то для исполнения примера рис. 8.42 и последующих примеров надо исполнить команду with(plottools).
8.7.5. Примеры применения трехмерных примитивов пакета plottools
Аналогичным описанному выше образом используются примитивы построения трехмерных фигур. Это открывает возможность создания разнообразных иллюстрационных рисунков и графиков, часто применяемых при изучении курса стереометрии. Могут строиться самые различные объемные фигуры и поверхности — конусы, цилиндры, кубы, полиэдры и т.д. Использование средств функциональной окраски делает изображения очень реалистичными.
Рис. 8.43 показывает построение цилиндра и двух граненых шаров. Цилиндр строится примитивом cylinder, а граненые шары — примитивом icosahedron.
Рис. 8.43. Построение цилиндра и двух граненых шаров
Другой пример (рис. 8.44) иллюстрирует построение на одном графике двух объемных фигур, одна из которых находится внутри другой фигуры. Этот пример демонстрирует достаточно корректное построение вложенных фигур.
Рис. 8.44. Построение двух объемных фигур
На рис. 8.45 показано совместное построение двух пересекающихся кубов и сферы в пространстве. Нетрудно заметить, что графика пакета приблизительно (с точностью до сегмента) вычисляет области пересечения фигур. С помощью контекстно-зависимого меню правой кнопки мыши (оно показано на рис. 8.45) можно устанавливать условия обзора фигур, учитывать перспективу при построении и т.д. В частности, фигуры на рис. 8.45 показаны в перспективе.
Рис. 8.45. Примеры применения примитивов трехмерной графики пакета plottools
Построение еще одной забавной трехмерной фигуры — «шкурки ежа» — демонстрирует рис. 8.46. В основе построения лежит техника создания полигонов.
Рис. 8.46. Построение трехмерной фигуры — «шкурки ежа»
Построение фигур, очень напоминающих улитки, показано на рис. 8.47. При построении этих фигур используется функция tubeplot. Обратите внимание на то, что строятся две входящие друг в друга «улитки».
Рис. 8.47. Построение фигур — «улитки»
Наконец, на рис. 8.48 показано построение фигуры — бутылки Клейна. Фигура задана рядом своих фрагментов, определенных в процедуре cleinpoints. Эта процедура является еще одним наглядным примеров программирования графических построений с помощью Maple-языка.
Рис. 8.48. Построение фигуры «бутылка Клейна»
С другими возможностями этого пакета читатель теперь справится самостоятельно или с помощью данных справочной системы. Много примеров построения сложных и красочных фигур с применением пакета plottools можно найти в Интернете на сайте фирмы Maple Software, в свободно распространяемой библиотеке пользователей системы Maple и в книгах по этой системе.
8.7.6. Построение графиков из множества фигур
В ряде случаев бывает необходимо строить графики, представляющие собой множество однотипных фигур. Для построения таких графиков полезно использовать функцию повторения seq(f,i=a..b). На рис. 8.49 показано построение фигуры, образованной вращением прямоугольника вокруг одной из вершин.
Рис. 8.49. Построение фигуры, образованной вращением прямоугольника
В этом примере полезно обратить внимание еще и на функцию поворота фигуры — rotate. Именно сочетание этих двух функции (мультиплицирования и поворота базовой фигуры — прямоугольника) позволяет получить сложную фигуру, показанную на рис. 8.49.
8.7.7. Анимация двумерной графики в пакете plottols
Пакет plottools открывает возможности реализации анимационной графики. Мы ограничимся одним примером анимации двумерных графиков. Этот пример представлен на рис. 8.50. В этом примере показана анимационная иллюстрация решения дифференциального уравнения, описывающего незатухающий колебательный процесс. Строится качающийся объект — стрелка с острием вправо, решение дифференциального уравнения в виде синусоиды и большая стрелка с острием влево, которая соединяет текущую точку графика синусоиды с острием стрелки колеблющегося объекта.
Рис. 8.50. Пример анимации двумерной графики
Этот пример наглядно показывает возможности применения анимации для визуализации достаточно сложных физических и математических закономерностей. Перспективы применения системы Maple 9.5 в создании виртуальных физических и иных лабораторий трудно переоценить. Хотя большие возможности в этой области представляет СКМ MATLAB с пакетом расширения Simulink.
8.7.8. Анимация трехмерной графики в пакете plottools
Хорошим примером 3D-анимации является документ, показанный на рис. 8.51. Представленная на нем процедура springPlot имитирует поведение упругой системы, первоначально сжатой, а затем выстреливающей шар, установленный на ее верхней пластине. Упругая система состоит из неподвижного основания, на котором расположена упругая масса (например, из пористой резины), и верхней пластины.
Рис. 8.51. Имитация отстрела шара сжатой упругой системой
Управление анимацией, реализованной средствами пакета plottools, подобно уже описанному ранее. Последний пример также прекрасно иллюстрирует возможности применения Maple 9.5 при математическом моделировании различных явлений, устройств и систем.