Говорухин В., Цибулин Б. Компьютер в математическом исследовании (1185927), страница 32
Текст из файла (страница 32)
В качестве ор( может фигурировать конструкция, аналогичная заданию цвета в графических структурах, а также функция; О !Чдпг=(зп1,ап2, г,д, Ь] — задание подсветки, создаваемой источником света из точки со сферическими координатами эп1, ап2. Цвет подсветки определяется долями красного (г), зеленого (д) и синего (Ь) цветов, которые находятся в иитервале от О до 1; О эпчьчепг1чдьг (г, д, ь] — цвет изображения, определяемый долями красного (г), зеленого (д) и синего (Ь) цветов, которые находятся в интервале от О до 1; О Ь(сЕ(яагЕз=(11, (2.
ЧЗ] — задание числа насечек по осям координат; О 1аЬе1 э=(эсг1, лсг2. эсг3] — надписи по осям координат, задаваемые строками эсг1, эгг2, лгг3; О ТЧ!1ес=вгпегга! эе — закрашивание пространства между поверхностью и плоскостью (Х,У) в случае значения (гпе. Этот параметр применим только к командам р! оГЗс, сопле нгр! оГЗ(Ч и ! ч згсоп(р! о13(Ч. Пользователь может переопределять установки по умолчанию ва сеанс при помощи команды аегоргчопаЗчч (ор(1-ча11..... оргп ча1п) Команда р1о13д подобно двумерной графике, где функция р1от выполняет самые разнообразные функции, в трехмерном случае существует миогофуикциональиая команда р1о(ЗС((ех1,ех2,...),чаг1-а..ь,чаг2-с..(Ч,«ор(чона>); Здесь приведен один из видов обращения к этой команде, позволяющий выводить иа одном рисунке несколько поверхностей, задаваемых однотипными Мар)е-выражеииями ех1, ех2, .... Зги выражения могут зависеть только от двух перемениых чаг1 и ча г2.
Поверхности рисуются для прямоугольника аэчаг1ьЬ, сэча г2я(Ч. Вид нредставлеиия рисунка можно меиять при помощи параметров (ортчопз). приведем пример исполвзоваиия этой команды для изображения двух поверхностей. Для иллюстрации действия раэличиых параметров выполним команду два раза — без использования и с исцользоваиием параметров: > р1осэб((х а(п(2"у) у соа(З*х).адгт(х"2еу"2)-1Ь), х -РЧ..РЧ.у--РЧ..РЧ); $68 Глава 5. Графика нар(е > р)осза((х*51п~2"у)+у*сов(3"х),Бага(х"2 у 2)-15) х--Рь .Рцу=-Р! .Рц Ог10 (40,40Е асу'е-рлтсикООЯ!О. 1111е-"коканда р>осза".
110пс=.(1,1 1,1 >Е ахеа=гРАМОО )аье)а.["ось К"."ось У","ось 2"), ог1епааа оп-(50,701 со)ог-х"2~у.111>е(апг=(Т!ИЕ5,00>0,14>). Команда р!ОГЗ6 О ась 2.5 -10 -15 осы 2 ось Х о 0 Как и для команды р) о",, аргументы функции не обязательны. Если они отсутствуют, то в качестве первого параметра команды р10130 указывается только имя функции, после которого следует пара интервалов изменения переменных. Проиллюстрируем зто примером, в котором опишем функцию двух переменных и изобразим соответствующую ей поверхность; > тап:-ргас(х,у) 1оса1 ан вп 0; >т х<0 слеп и:-а1п(х)*в1п(3"у) е1ае и:-Рмп(х)*сов(у>2) Г>; ве епсц ° р>осзо(гап.-Р>,.Р>,-Р1..РЕ ахеа-Оокгв): 1 0.5 0 -0.5 Трехмерная графика 169 Я ВНИМАНИЕ При графическом изображении кусочно-непрерывных или вычисляемых функций, например функции Ып из предыдущего примера, могут возникать трудности.
Так будет получено сообщение об ошибке, если попытаться обратиться к команде р(асад следующим образом: р!о(ад(тип(ху)х -Рт..рту -Р(..Р(); Епог, (1п тип) саппос ечамате Ьоа1еап: х с О Это объясняется тем, что Мар!е сначала обращается к функции, исходя нз того что переменная х является символьной, а затем подставляет числовые значения. От этой ошибки можно избавиться, заключив в кавычки обращение к функции. Например, следу(ощая команда даст правильный р( зультат > р1оЬЗШ'Чип(х,у)" х=-р..,р;.у==-Рт ..Рт), Лналогтгчно команде р10: команда р1птЗО предназначена для вывода заданной параметрнчески поверхности. В этом случае обращение к команде имеет вид; р1иЬЗФ[ хрг1,ехрг2,ехргЗ],чаг1=а .Ь.чагр=с.
сц Здесь координата( заданы выражениями ехрг], ехрг2, ехргЗ от двух переменных чаг' и чаг2, которые изменяются на г)трез сах [з, о] и '(с, О) соответственно. Пример: > р1осзщ((5 соз(с(2)*и)*сок(с), (5+Сок(1/2)ьи)ныл(С),сттц(2) "ии. >=О. 2*Р) . и=-1. 1 сзгтс=,(30,15], огтепта(топ =(-)3>.30з ьзс)египт=-(не(чег)ел 50(0,20], 1)с(е='пист мсииуса.". зйаб(пй-25ЦЕТ50Д(Е) Лист Мебиуса. При помощи команды р1013(] можно осуществлять и некоторые другие операции.
НаПрИМЕР, ИСПОЛЬЗУЯ ПаРаМЕтР СООгйз, МОжиО СтРОИтЬ ПОВЕРХНОСТИ В СфЕрИЧЕСКИХ и цилиндрических координатах: > 5 -р1ЬЬЗец (Г.цч]. (=О.. 2'Р).0-0.. Рт.соогбз=зрлегтса)). 5, Специальные команды трехмерной графини В данном разделе приводится ряд наиболее популярных команд трехмерной графики, а их полный список можно найти в справке Мар!е: 14'0 Глава 5. Графика Мар[е 2 1 О .1 -2 СХ ляаСг)хр1оС[М, орСХ опз>) — построенИе ПоверхнОстИ, заДаНной матрИЦей М. При задании параметра Ье!ОЬС 5=0)ВСодгаО строится трехмерная гистограмма. Например: > аагг)хР1ог(П-1.3.4).[-2,-1,01,[3.4,81].левдлгв-ывгодгащ влаФЬО гогаувсв1е. вхвв-Ьох,огяепгвг!оп-[-75 75), Сясаиаггв-[ П .5-"январь".2.5<"февраль".3.5-"нарт" ), [1.5-1998.2.5-1999,3.5-20001,5],1аЬе1в=[".","Т"1); 4 Т 2 О -2 РОО Февраль март о сопСоогр1 ОСЗО[ехрг, ча г1-а ..Ь.
чаг2-с .. О. <ОрСт опз>) — построение линий уровня выражения ехрг от двух переменных чаг1 и чаг2 в прямоугольнике [а, Ь]*[с А] (идентично команде р1 ОСЗО с параметром вСу1 е=СОМТООй); сг су1 т псегр1 ос [ехрг, чаг 1=а ..Ь. ча г2=с .. О, <орс1опз>) — изображение поверхности, определяемой выражением ехрг, заданным в цилиндрических координатах; О Г)е)ср1ОСЗО[[ехрг1,ехрг2.ехргЗ], чаг1=а..Ь, чаг2=с..с, чагЗ=е..[, <орС)опз>)— построение в параллелепипеде [а, Ь]*[с, О]*[е. Г] трехмерного векторного поля с компонентами, заданными выражениями ехрг1, ехрг2, ехргЗ, которые зависят отпеременныхчаг1, чаг2, чагЗ; О дгаср1ОСЗО[ехрг.
чаг1=а ..Ь. чаг2=с .. О, чагЗ=е .. Г. <ОрС1опз>) — построение трехмерного поля градиента выражения ехрг, зависяшего от трех переменных чаг1, чаг2, чагЗ. Переменные изменяются в заданных интервалах; О )ляр!! с)Ср1 ОСЗО[ехрг=д. чаг1=а .. Ь, чаг2=с. А, чагЗ=е ..
Г, <орС)опз>) — поСтроенИЕ неявно заданной поверхности ехрг=д в параллепепипеде [а. Ь]*[с. О]*[е. Г]. Здесь выражение ехрг зависит от переменных чаг1, чаг2, чагЗ. Дадим пример использования последней команды: > )ар1ясягр1о[36( х"3 + у"3 + г"3 - (х у + г + 1) 3, х--2 2,У--2. 2 г=-2. 2.0г)ем[15.15.15).ахея-ВОХЕО), Трехмерная графика 171 О обер1 ос(5, ч ага „г1. г2, <орс(опз>) — изображение решения дифференциального уравнения [см. примеры в главе 4 «Решение уравнений в Мар!е>); О ро! ОСр1 оС([[х1,у1,21],..., [хп.уп, 2пП,<орс(опз>) — вывод точек, заданных сво- ими координатами; О ро1удопр)оСЗб([рпС1,..., рпСп]) — построение трехмерного п-угольника, задан- ного точками рпС1,..., рпСп, причем первая точка соединяется с последней; о ро1упебгар1 ос ( с.
<арс( опз>) — иэображение набора точек в виде трехмерных геометрических фигур. Здесь С вЂ” переменная типа 1(5С1гаС, в которой находятся координаты точек. Каждая точка является центром изображаемой фигуры. Параметр ро1уэса1е-и задает размер фигуры [по умолчанию п-1), а параметр Р01уСуре=р опрелеляет вид фигуры, где р может принимать следующие значения: СеСгапебгоп, осСапебгоп,Пехапебгоп,бобесапебгоп, (соэаьебгоп; о эрасеснгче([ехрх, ехру, ехр2], чаг-а ..
Ь,<орС(опз>) — построение кривой в трехмерном пространстве. Кривая задается параметрическн выражениями координат ехрх, ехру и ехр2, зависящими от одной переменной чаг, изменяющейся на интервале [а, Ь], Пример: > арасесигче(([(*соя(С).юп(С).2 С]).(-0,.8«рг, пиаро(п2я-200.ахея-80ХЕО, ог(епсас(оп-[80.50).со1ог-ь)ась.гп(скпеаа-а): 50 40 30 20 10 -1 -0.5 го ( О 5Рпегер) оС(ехрг, чаг1-а .. Ь, чаг2-с ..
б, <орС(опя>) — поетроеине ПоВеРхности, заданной в сферических координатах. Выражение ехрг задает радиус, зависящий от двух угловых переменных чаг1 и чаг2; О ацгтбаСа([[[х11,у!1,21Ц,..., [х1п.у10,210]],..., [[хя(1,у(01.2а1]... [хя(п.увп.лап]]], орС(опз>) — построение поверхности, заданной переменной типа 1( 5С1 (5С; О СехСр1оСЗбЦехрх,ехру, ехрх], 5Сг,<орС(опэ>) — ВыВод текстоВой строки ЗСг с цен- тром в позиции, задаваемой координатами ехрх, ехру и ехрх; О СОЬер10С([ехрх,ехру,ехрх],чап-а,.Ь,габ(цз-г,<оРС(опэ>) — построеинепоВерХнО- сти вращения, полученной обращением радиуса г вокруг параметрически заданной пространственной кривой.
Кривая определяется выражениями для координат ехрх, ехру и ехрх, зависящими от одной переменной ча г, изменяющейся на интервале [а, Ь]. Приведем пример построения сложного тора: > г. 2+0.0«соа(7«С): 172 Глава 5, Графика Мар1е > тиьер1 о((1г>сов(4*1), г*ю п(4*! ), юг(7*1) ! д-0 ..
2*Ры гай из "О. 25 Диьеро! и !4-20, п аиро! и( 4=200, ог!еп(аткоп=145,201): (3 5Егорт( 00530( орт(оп51=ехр1,.... орг! опап=ЕХРп) — назначение паРаметров трехмер- ной графики на сеанс. Коротко коснемся возможностей трехмерной мультипликации. Один способ заключается в использовании команды 0! 501зу30 нлн 0! зр1ау с использованием параметра (пзЕопЕпСЕ=тгие,адругой использусткоманду зп(п(аге30(Г, х=а,,Ь, у=с..0, 1=11..12, Г ал(ез=п, <орГ!опз>). Здесь Р— выражение, зависящее от переменных х (абсцисса), у (ордината) п 1 (переменная времени), которые изменяются соответственно в интервалах (з.
Ь), Гс.й) и Г("., (2,". Параметр Ггап)е задает число кадров. Приведем пример трехмерной анимации, а для создания картинки, состоящей иэ серии кадров, используем команду 0! Гр)зу: > гез -авиа(езс(юп(г*х)*сов(у).х--Р. Рыу=-Рк. Р;. г=0 2..!.2,(гаева=д,сз)ог-эх(е дг 0=(15.!51) > Гп вр14у(гев); Теперь представим команду для вывода поверхности, определяемой комплекснозначной функцией — со(вр1ехр!0130(ехрг, 2=а > Ь*! ..