Дьяконов В. Maple 7 - Учебный курс (1185900), страница 67
Текст из файла (страница 67)
ПРИМЕЧАНИЕ Обратите внимвние нв то, что, начиная с рис. 12.21, мы не указываем эвгрузку пвкета ргосеаорь поскольку оне уже била проведена ранее. Однако надо помнить, что все примеры этого раздела предполагают, что такая эвгруэкл обеспечена. Если вы использаввли команду гезсвгз или талька что злгруэилм систему Мвр1е 7, то для исполнения примера рис. 12.21 и последующих примеров недо исполнить комвнду щтен1ргосеоон). Графика пакета р[о[[оо]5 449 > КЬ1СЬСЬаге: ргос(г) 1оса1 х, а, Ь а: РЫР( иея( агс( [-1тг / Я, 0], 1аг/4, О..Р1), 1 1..4 ), асс( [О, г/2], г/2, 01-агси1п(3/5) ..3*Р]/2), агс( [О,г],г, 01..01 агсиап(15/17) ), агс([0, 2*г], 2*г, Р1+агси1п(3/5)..Р1+агси1п(бз/65)),агс( [О, 4"г], 4*г, Р1аагои1п(15/17)..Р1+агси1п(63/65) ) ) Ь т- Сгапигоге( (х, у)->[х, -у] )(а); <(1ир1ау( а, Ь, 11пе( [О, О], ]-2ег, 0] ), агяи [2..
пегое] ) ) епп: > Зп1(ЬСЬаге(1 , ахеи Ьохес)т 0.5 .О 5 ] .2 П5 с .14 .05 О ркпа ! Рис. 12.21. Построеиие диатраммы Смита Примеры применения трехмерных примитивов пакета р1ой~ооЬ Аналогичным описанному выше образом используются примитивы построения трехмерных фигур. Это открывает возможность создания разнообразных ил)пострационных рисунков и графиков, часто применяемых при изучении курса стсрсомстрии, Могут строиться самые различные объсмпыс фигуры и поверхности — конусы, цилиндры, кубы, полпздры и т. д.
Использоваяпе средств функциональной окраски делает изображения очень реалистичными. Рисунок 12.22 показывает построение цилиндра и двух граненых шаров. Цилиндр строится примитивом су! 7 п(]ег, а граненые шарь) — примитивом 7собб]]РПгоп. Другой пример (рис. 12.23) иллюстрирует построение на одном графике двух объемных фигур, одна из которых находится внутри другой фигуры.
Этот пример демонстрирует достаточно корректное построение вложенных фигур. На рис. 12.24 показано совместное построение двух пересекающихся кубов и сферы в пространстве. Нетрудно заметить, что графика пакета приблизительно (с точностью до сегмента) вычисляет области пересечения фигур. С помощью контекстно-зависимого меню правой кнопки мыши (оно показано на рис.
12.24) можно устанавливать условия обзора фигур, учитывать перспективу при построении н т. д. В частности, фигуры на рис. 12.24 показаны в перспективе. СВ50 Урок 12. Расширенные средства графики Рис. 12.22. Построение цилиндра и двух граненых шаров Рис. 12.23. Построение двух ебъеиных фигур Графика пакета р1оггоой 451 Рис. 12.24. Примеры применении прииитиаоа трехмерной графики пакета р~оттоок Построение еще одной забавной трехмерной фигуры — «шкурки еж໠— демонстрирует рис. 12.25. В основе построения лежит техника создания полигонов. Построение фигур, очень напоминающих улитки, показано иа рис. 12.26.
При построении этих фигур используется функция 1оЬер1о1. Обратите внимание на то, что строятся две входящие друг в друга «улитки». Наконец, на рис. 12,27 показано построение фигуры — бутылки Клейна. Фигура задана рядом своих фрагментов, определенных в процедуре с1етпротп1а Зта процедура является еще одним наглядным примером программирования графических построений с помощью Мар!е-языка. С другими возможностями этого пакета читатель теперь справится самостоятельно или с помощью данных справочной системы. Много примеров построения сложных и красочных фигур с применением пакета р!огсоо!з можно найти в Интернете на сайте фирмы Мар!е БПЪоаге, в свободно распространяемой библиотеке пользователей системы Мар1е и в книгах по этой систелте.
Построение графиков из множества фигур В ряде случаев бывает необходимо строить графики, представляющие собой множество однотипных фигур. Для построения таких графиков полезно использовать функцию повторения зеоГ(Р.1 а..Ы. На рис. 12.28 показано построение фигуры обРазованной вращением прямоугольника вокруг одной из вершин.. Графина пакета р1ойооЬ 453 ;БЙФ' Ф > 11»про1 с:- ргоа( ) 1оа«1 лассо, иь[01, лв»01е, сар.
Р, ч Ьо»»оп :- ((2.5+1.5 ао <ч>) аов( >, (2.5+1.5*аов(ч))*в1п(н), -2.5*«1 ( )): и1001 [(г 5 1.5*нов(ч)) аов(н), (2.5 ° 1.5"аов(ч))* и( ), З ч)» Лв 01 » [2 — 2*нов(ч) 1п(п), аав(н), З*ч)» Сор: [ 2 ( 2+аов( ) )*нов(ч], «1п( ), в*01 <г+ нов<и» ° ° ' ( ) ]» Р : Р1оезд( (Ьо»[ое, п10Е1е, )»вп01е, СоР), п-0..2*Р1, ч 0..21, дг10 ПО 0))» е1еас(т» тор(0, т») ыевн (ор(Р)))г вед( аа ч. С( д, Растаанв), »)"Р ), еп[: 01 р1 у( д( анеонен», 1/2), ] > 1е ро1пС«( ) ), ва«11пд - нпаоивсг«1пее, ог1е»нв»1оп <-100, 100)) т ,.й':;"":-".-.-.т'рч 22';е.-'- Рис. 12.22. Построение фигуры «бутылка Клейна» В этом примере полезно обратить внимщше ешс и на функцшо поворота фигуры — госасе. Именно сочетание зтих двух функций (мультиплицирования и поворота базовой фигуры — прямоугольника) позволяет получить сложную фигуру, показанную на рис.
12.28, Анимация двумерной графики в пакете р1ой~ооЬ Пакет р!о[[ооЬ открывает возможности реализации анимационной ~рафики. Мы ограничимся одним примером анимации двумерных графикон. Этот пример представлен па рис. 12.29. В атом примере показана анимационная иллюстрация решения дифференциального уравнения, описывающего незатуха)оший колебатсльный процесс.
Строится качвюштшся обьект — стрелка с острием вправо, решение дифференциального уравнения в виде синусоиды и большая стрелка с острием влево, которая соединяет текущую точку графика синусоиды с острием стрелки колеблющегося объекта. Этот пример наглядно показывает возможности применения анимации для визуализации достаточно сложных физических и математических закономерностей. Перспективы применения системы Мар!е 7 в создании виртуальных физических и иных лабораторий трудно переоценить. Анимация трехмерной графики в пакете р1ойооЬ Хорошим примером 30-анимации является документ, показанный на рис.
12.30. Представленная на нем процедура Зрг(ппр1ос имитирует поведение упругой системы, первоначально сжатой, а затем выстреливающей шар, установленный на ее верхней пластине Упругая система состоит из неподвижного основания, на котором расположена Я1йй)тй[н масса (например, из пористой резины), и верхней. пластины. 454 Урок)2. Расширенные средства графики Рис. 12.28. Построение фигуры, обра)аванной аращеннен прянаугаяьннка Щтсеу)уяу втек(ус Й ю) йадгдо Р(<(42)взййнв<вввв/екав)<кон)екк е би ь' ' ' 447).аи .в )д: 'е) аа ы 'н га ' ' Рр ',!",".'%",-'-7 "7.;);., ).', Анимации ° развертка во времени синусоиды > 2:- ргоо(е, тдоеа1 ) 1 7 т:- 1ьв(гдоеасп) 7 01220 7- д)22(е, т) г 1;- ь < ь*(тдоеасп)) г пдрг:- впь (т 1, д1220)гр:- р1ог(1, агг)в(2.
патов))г о: 01го1е( (-1, О), 1. О) 7 д 1 ;- (1/ввг1( 1+сидре 2), еперь/вцг1(1+епдрь 2))7 11 1 : *гон( (-1, 0 ), <дв «1 <1), сн 01 <2 ) ), О . 05, 0 . 1, 1/10, о 1 )); и ; (1, Ь (т"1,0))7 д11 :- аг оч(, 4)в ог, 0.05, 0.1, 1/10,оо1ог гед)г д1 01 У( (1, РЬОГ(4(11 , О, 11 1)),В1ЕН (-2..1+2, ОЕГЗНГ121 ); епд: > д1 р)ау< (в Е< 2< 1 <т), т-е..1*01/10), 1-0..04) ), )пвеопепое-сгпе, воа11 а оо 1 а1пвт()) 0 <О 4 6 Рис. 12.29. Припер анинации даунерной графики' Расширенные средства графической еи)уализации в055 > гевсагс лнссл(р1осйооув):ч[сл(р1осв): > врг1«ОР1ос; ]стон(п) 1о 1,вр.1 О,ьог,сори,ьоссови,ье11г,ьа11,ьа11в1 Р 1 2: 01вр1ау([в ](иране« гне([со (С), 1п(С), 0*в1 (н/п*ры*с/200),с 0..20вв1,«о1о ыао]т, пнвро1пси 200,сь1оап в-з),н 1..
)],1пв ч ое-с ) т Ьог: о Ьотй([ — 1,-1,0],[1,1,1],оо1ог гвв): Ьа110 в]тьегв( [О, О, 2],0 10 [15, 15], оо1ог-Ыне) т сора:-01вр1 у([в ч(сг пи1асе(ьог,о,о,б*в1«( /п*Р1)*Р1/10), -1..п)], 1«вар о Сг ) т ьоссопв; 01вр1ау( [ввч(с апв1ас (ьог,о,о, — 1), 1..«) ], 1«веч«впое сгне) т Ь 11в: «1вр1ау([* ](1гапи1агв(Ьа11,0,0,1+10* 1 ( /(и-1)*01)*Р1/10), «-1..
(и-1) )],[пве]неп е С н ) т 01 р1ау(вр 1 О,сор,постони,ьа11, су1 расоь,о 1 самон-[45,]б], воа11пе «поопивга1пев)т епп: 1 > Р 1 00[ОС(1О) Л Рис. 12.30. Имитация отстрела шара сжатой упругой системой Управление анимацией, реализованной средствами пакета р!о[[ее!5, пОДОбпо уже описанному ранее. Последний пример также прекрасно иллюстрирует возможности применения Мар!е 7 при математическом моделировании различных явлений, устройств и систем.
Расширенные средства графической визуализации Построение ряда графиков, расположенных по горизонтали Обычно если в строке ввода задается построение нескольких графиков, то в строке вывода все они располагаются по вертикали. Это не всегда удобно, например, при снятии копий экрана с рядом графиков, поскольку экран монитора вытянут по горизонтали, а не по вертикали. Однако при применении функций р1 отз и [!(зр1 ау можно разместить ряд двумерных графиков в строке вывода по горизонтали, Это демонстрирует пример, показанный на рис, 12.31. Этот пример достаточно прост и нагляден, так что читатель может пользоваться данной возможностью всегда, когда ему это нужно.
456 Урон 12. Расширенные средства графики ! Построение в одной строке вывода нескольких графиков разного типа, расположенных по горизонтали Создадим гРафические объекты а, Ь и с [> еасщр1«еа, «опкогиа1, Пзар1ау) г ! > а:-рзов(асп(х),зг — 1О..1О, «озог-Ы К)т Ь; «оаеогеа1(а а 0 ..
2*Р1+Рх*1 Ог16 [20, 20), ахея Ьохеп «о1ог Ыа«К)т « :- «опгохеа1(«оа(а), и 0..2*Р1+Р1*1, Огва [20, 20), ахеа Ьохее, «о1ог Ыао\г)г Построим их в один ряд используя функции р>отз и б>зр>ау > р1ося [с)1ар1ау) (агхау(1..3, [а, Ь, «!) ) > 3 00 >0 50 .>О 2 3 4 5 В Рис. 12.31. Пример расположения трех графиков в строке вывода по горизонтали Визуализация решения систем линейных уравнений Мы уже нс раз использовали графические возможности Мар!с для визуализации решений математических задач. Так, многие осоГ>енностп даже функций одной переменной вида Ях) могут быть выявлены с помощью графика этой функции.