Матросов А.В. Maple 6. Решение задач высшей математики и механики (1185909), страница 50
Текст из файла (страница 50)
Команды 8!о)лег и Рвв!ег меню Аайва!1оп выполняют аналогичные действия. При нажатой кнопке Однократное выполнение анимация проигрывается только один раз. Нажатие кнопки Непрерывное выполнение осуществляет циклическое проигрывание анимации. Команда-переключатель Япй!е сус!е/ Соп((ивова переключает режим отображения анимации между однократным и непрерывным.
4.3.1. Двумерная анимация Двумерная анимация создается командой апт все)), имеющей следующий синтаксис: аптеасе)у-ехрп, х=днапазонт, сипе=днапазон2) Здесь первый параметр у-ехрп представляет выражение, зависящее от переменной х и параметра спев, изменяемых в соответствующих диапазонах. В примере 4.31 создается анимационное отображение функции сов(х), которое представляет зависимость этой функции от параметра рь)., являющегося фазой тригонометрической функции.
> апппасе )сов )х+рвт), х=о .. 2*рт, р)п=с., 2*Р)., со1ох=о1асх, сгпсхпевв=2) Мы показали только первые четыре кадра анимационной графики, так как в книге невозможно представить динамическое отображение кадров, По умолчанию команда апанасе)) создает 16 кадров. Если этого мало для плавного отображения изменения некоторой функции, то их число можно увеличить (или уменьшить), задав значение опции г сад ее. Сыдание большого числа кадров анимации, особенно пространственной, может потребовать достаточно много времени и памяти компьютера.
Двумерную анимаци)о Можно отобразить в, виде пространственной статической картинки,"в которой сечения по перев!еннеой-параметру и будут представлять кадры анимации (см. пример 4.32)) Глава 4. Графика > р1отзг((сов (х+рьз.), х=О .. 2*И, рЛ1=0 .. 2*Р)., ахев=ВОХЕО, вту1е=н100ЕН,от1апоаогоп=[-60,60],со1от Лгасх) 1 0.6 0 -ОЛ -1 Можно создавать анимацию и для параметрически заданной кривой, а также для кривой, заданной в системе координат, отличной от декартовой.
Пример 4.32 демонстрирует создание анимации для параметрически заданного эллипса и для разворачивающейся спирали в полярной системе координат. > апгзпаие( [а*сов(т) "З,в1п(С) "З,С-0..2*Рз ],а=0..2) з > апзазате (рЛ1*т, рЛ1=0 .. 8*Р1, и=1 .. 4, соотг(в=ро1ат, пиазротпив=200) з Замечание В примере 4.33 мы не стали приводить кадры анимации, а предлагаем чнтателкз просто выполнить приведенные команды непосредственно а Мар)е 6. СОЗдатЬ аНИМацИЮ МОЖНО И КОМаНдОй г)гвр1ау(), ЗадаВ В Нсй СПИСОК ОтО- бражаЕМЫХ ГрафИЧЕСКИХ СтруКтур И ОПЦИЮ 1пвадиапоа=тгиа. В ЭТОМ СЛуЧаЕ анимационные кадры будут составлять графические структуры из списка ПЕРВОГО ПараМЕтра КОМаНдЫ отвр1ау () .
Мар!е 6 позволяет сохранить анимацию в графическом файле формата С!г, который впоследствии можно использовать в НТМЬ-страницах для отображения анимации, т. е. Мар!е 6 создает, в конечном счете, анимационный Сз!тз-файл. Для этого следует установить графическое устройство дз т командой рзоиватир () И уКаЗатЬ В НЕй ИМя файЛа, В КОтОрОМ будЕт СОХраНЕНа аНИМацИя: > р1ооветир(дгт, р1отоитрит 'г)з'ззр1от.д1Г') з > ап1иасе(сов(х+рл1),х 0..2*Рт,рл1=0..2*Р1,со1от л1аск,слтскпевв=2) з Если вставить файл р1ог.й!т" на страницу НТМЬ, то при ее отображении и обозревателе Интернета будет "проигрываться" анимационная картинка, отображающая изменение фазы тригонометрической функции срз!л). Часть ) Основы Марlе 270 В ПрОСтраНСтВЕ аНИМацИя СОЗдаЕтея КОМаНдОИ апгиагаЗС)(), ИМЕЮщсй СИН- таКСИС, акаЛОГИЧНЫй СИНтаКСИСУ КОМаНДЫ ДВУМЕРНОЙ аНИМаЦИИ апгиаса (): ап(ласезс(( Г(х, у, С), х=а ..
Ь, у=с ..с), С=)>.. Ч, опани) ЗДЕСЬ ПЕРВЫЙ ПаРаМЕтР Г(х,у,с) ПРЕДСтаВЛЯЕт ВЫРажЕНИЕ От трЕХ ПЕРЕМЕН- ных или функцию двух первых независимых переменных, зависящую от параметра с. Остальные параметры задают диапазоны изменения независимых переменных и параметра. Опции, представленные параметром сиани, как всегда задаются в виде уравнений и определяют вид отображаемого анимационного графика: оси, толщины линий и т.
и. > Г: = (Хс У) >оса (С*Х) *51а (С*У) ' Р:= (х, у) — + соэ((х) 5(п(гу) > аппаакезс)(Г(Х,У),х=-1..1, У=-1..1, 5=1..2, ахеэ=вохкв, апасцпд=зовлузсы.к) 1 05 0 0.5 1 0.5 0 0.5 ! -1 5 По умолчанию для представления пространственной анимации создается 8 кадров. Опцией гсагаа всегда можно увеличить их число для получения более плавной картинки смены кадров.
Однако следует помнить о времени и памяти, расходуемых на создание большого количества кадров анимации. В примере 4.34 показаны первый, четвертый и восьмой кадры анимационного иэображения графика функции двух переменных. Команда апгаасезс(ц может одновременно отображать изменение несколь- ких функций. В этом случае все они должны зависеть от одинаковых не- зависимых переменных и одного и того же параметра и задаваться в виде списка. Команда трехмерной анимации может создавать анимационные отображе- ния и параметрически заданной поверхности. Пример 4.35 демонстрирует построение анимации параметрически заданной поверхности.
4.3.2. Трехмерная анимация 1 0.5 0 .0.5 -1 -1 -1 Глава 4. Гр нка 271 > агшпасезб([х*и,с-и,х*соэ(С*с)),х=1..3,С 1..4,и=2..4, ахеа=ВОХЕп,ог1епкакгол=(-45,70]) Замечание В примере 4,35 мы не стали показывать отдельные кадры анимации. Читатель может получить представление об отображаемой поверхности, выполнив заданную в нем команду непосредственно в сессии Мар(е. Аналогично двумерной анимации можно получить пространственную анимацию последовательным отображением Р1.0Т313-структур командой агартау(), в которой значение опции зпзечаелсе установлено равным ткае, а отображаемые "кадры" являются элементами списка, определяемого первым параметром этой команды.
Для получения анимационного файла формата О1Р следует, как и в случае двумерной анимации, вывести результаты выполнения трехмерной анима- ЦИИ В ГрафИЧЕСКОЕ уетрОЙСтВО Сгт, УСтаНаВЛИВаЕМОЕ КОМаидОй ртотаатир () . ГЛАВА 5 Основы программирования в Мар!е До сих пор Мар1е использовался нами как интерактивная система аналитических вычислений, однако, его возможности этим не ограничиваются. Он имеет собственный язык программирования, позволяющий создавать пользовательские процедуры, на который мы будем ссылаться как на язык Мар1е. Вызов процедур аналогичен обращению к встроенным командам Мар!е, ибо последние также представляют программы Мар!е, которые, между прочим, пользователь может брать за прототипы при создании собственных.
Все, что необходимо сделать при создании программы, — это написать процедуру, заключив операторы Мар!е между ключевыми словами ргссы и есд ргсс, и сохранить ее в библиотеке, если предполагается, что она будет необходима при решении возникающих у пользователя задач. Отметим сразу же одно важное отличие языка Мар!е от других языков программирования. В нем уже реализованы многие алгоритмы, для программирования которых в других языках требуются десятки, а то и сотни строк кода, — это уже известные нам команды, такие как зс1~е!1, ъсс ы и др. При программировании в Мар!е в его конструкциях ветвления и цикла можно использовать весь набор доступных команд, при необходимости подключая соответствующие пакеты.
Эта глава является всего лишь введением в программирование в Мар!е, хотя мы постарались, пусть и бегло, осветить практически все языковые конструкции. Полностью описаны основные типы данных, все операторы управления и цикла, а также создание процедур, а вот такая конструкция, как модуль, с помощью которой можно создавать в Мар1е объекты и работать с ними, а также формировать новые пакеты взаимосвязанных команд, нами затронуто лишь слегка. $.1. Язык Мар!е Изучение любого языка программирования начинается с алфавита, лексем, типов данных и допустимых операций над ними.
Далее описываются. струк- Часть Ь Основы МарЬ 274 туры ветвления' и цикла, и завершается знакомство с языком созданием процедур, объектов (если предметом изучения является объектно-ориентированный язык) н использованием средств ввода/вывода н отладки. Мы поступим аналогичным образом, и в этой главе познакомим читателя с базовыми понятиями языка Мар!е. Вернее, напомним, так как в гл.
2 практически мы уже познакомили с ними читателя. Здесь же известная информация будет представлена в систематизированном виде. 5.1.1. Основные алементы Алфавит языка Мар!с включает 26 букв латинского алфавита, строчных (з- ) и прописных (л-а), десять цифр (о-з) и 32 специальных символа, представ- ленных в табл. 5.1. Напомним, что язык Мар1е чувствителен к регистру: строчные и прописные бук- вы, используемые в именах, считаются различными. Таблица б.