Говорухин В., Цибулин Б. Компьютер в математическом исследовании (1185927), страница 31
Текст из файла (страница 31)
Отметим, что в предыдущих версиях Мар!е для изображения трехмерных графическпх структур применялась команда ЕЦ зр1 ауЗ(], отличающаяся от команды (]1 эр! ау. В версии 6.0 она осталась, но ее функции также выполняет команда Ем эр1 ау. трехмерные графические структуры Создание трехмерных рисунков, так же как и двумерных, происходит в три агапа. На первом этапе графическая команда производит необходимые вычисления и представляет их результат в виде набора трехмерных объектов.
На втором этапе эти обьекты преобразуются в графическую структуру командой Р[ОТЗР (обращение к ней аналогично обращению к команде Р[ОТ), а затем выводятся на экран или другое устройство, например в файл, или присваиваются переменной. Графическая структура может содержать параметры, которые управляют представлением рисунка. Трехмерные графические объекты РО]МТ5, СОКЧЕ5, РО[Т60М5, ТЕХТ аналогичны соответствующим двумерным объектам и имеют на одну размерность больше при задании координат точек. То же относится и к большинству параметров трехмерных графических структур, поэтому не будем их здесь описывать, а ограничимся примерами.
Сформируем четыре трехмерные )рафические структуры: первая описывает кривую, проведенную через три точки, вторая — набор точек, третья — текст, а четвертая — треугольник. При обращения к команде рисования Р[ОТ30 используем параметры, задающие цвет, размер и тип маркера, масштабирование рисунка и вид координатных осей: > этг1: -СОВ Ч[ 5( [ [О, 0. 0] .
[1, 0. 0] . П, 1, ОП ): > э[г2:-РО1МТ5([[0.1.0.1, -О.З], [О 9.0.1,0], [1.1.1.1.0]]): > э[гЗ:"ТЕХТ([0.0.0,0.5].'"ЗО-а[гэсгэгеп'". РОИТ(МЕ[ХЕТ!СА,ОВЩООЕ. 12)): > атг4: РИЛВОИ5([[0,5,0.5,0],[0.5,1.0,0.5],[0.0,1,1]]): > Р[ОТЗО(а[г1Л[г2.аггзпнг4, СО(.Ой(йВВ, О, 0,0), 5ТМВО[(01АМОНО 25) .
5САЕ1ИВ(СОИ5ТРА!КЕО).АХЕ55Т([Е([РАМЕ)): ЗЕ]-з]гпсЬгез 0.8 04 0 164 Глава б. Графика нар!е Опишем специфические трехмерные графические объекты: о 66!0(а..Ь,с..([.2) — задание поверхности над участком координатной плоскости !а,Ь!'[с,(Ц при помощи переменной типа 1! 511) 50, которая имеет вид 2-[[211,...21п],..., [гл)1...2(ап]]. Размерности этой переменной и и п определяют число равноотстоящих узлов по осям х и у соответственно. Каждый элемент переменной 2 задает г-координату в соответствующем узле; о мЕ5Н[А) — задание повсрхности прп помощи г)ереме)(нпй А типа!! 5! ! 51, которая имеетвидА-[[[х11,у11,21П...,[х1п.у10,210]"„,...
[[Хп)],ув)Пгл)П....,[хяп,уап, гвп]] !. В отличие от предыдущей команды здесь указываются все три координаты точек поверхности, что позволяет использовать неравномерную сетку, Перед тем как перейти к заключительному примеру использования трехмерных графических объектов, перечислим некоторые специфические параметры команды РЕОТЗО (трехмерной графической структуры): 60!65ТХ[Е задает способ соединения узлов поверхностей н может принимать значения ТН[АН60[АЯ и ЯЕСТАН66[АЙ, а вид подсветки поверхности задается параметрами Е!ОНТ и Е!6НТМООЕП Кроме того, параметр раскраски СОЕОР в трехмерном случае может принимать дополнительные значения ХХЛ5НАО!М6 и ХТ5НАО!!46, параметр 5ТХЕЕ при значении СОНТООН рисует сетку, а при значении РАТСНСОНТООР сше и закрашивает поверхность.
Теперь разными командами создадим два )рафическпх объекта (поверхности) и нарисуем их: > в(г1:-Оа!О(! .2.-1..0,[[0.0,0,0].[1.1,1. П . [0.3.0.3,0.3.0.3]. [0,0.0.0]]). в(гг:=МЕ5Н( К[1.1, П .[0.1,0].[0.0.1П . [[1.1. П. [1. О. О]. [О. 0,1Л] ): РЕОТЗО(вгг1,в(г2.АХЕ55ТХЕЕ(00ХЕО).СОСОК(Хх5НАО!)40)). 1 О.б Об 04 02 0 1 2 трехмерные команды пакета р!ойооВ Работа с графическими структурами с помощью команд пакета р[охгоо[з в трехмерном случае во многом аналогична двумерному. Команды аггои, ро1удоп, ро)пг и некоторые другие сохраняются, но при обращении к ним нужно добавлять еще одну координату. У команд, оперирующих с графическими структурами (гег! ее!, госете, аса1е, сгапв1аге, рго]есе), возникает дополнительный параметр, отвечающий третьей размерности.
Эти команды мы в данном разделе не описываем, а только ис- Трехиерная графика 165 пользуем в примерах. Однако существуют и специфические трехмерные команды, полный список которых можно найти в справке но пакету р1оггоо[з. Ниже мы перечислим только некоторые из них: О сопе((х.у. г), г, Ь) — формирует усеченный конус с началом в точке с координатами (х.у, г]. Необязательные параметры г и Ь определяют соответственно высоту и диаметр основания.
По умолчанию они принимаются равными 1; О сиЬо~4((х1.у1. г1), (х2,у2. г2) ) — задает параллелепипед с диагональю, опреде- ляемой точкамн [х1.у"., г1) и (х2,у2.22]; О сагуе([[х).у1,21]. (х2,у2.22),...]) — определяет пространственную ломаную, проходящую через точки с коордипатамн (х1,у1.21), (х2,у2.22),.... О су)кпЬег(с, г, Ь) — формируетцнлиндрсцентромоснованнявточкескоординатамн с=-(х.у.
г,'. Необязательные параметры г и Ь определяют соответственно радиус и высоту цилиндра. По умолчанию они принимаются равными 1; О Ьев) зрЬеге( [х,у, г], г) — задает полусферу с центром в точке (х,у, г) и радиусом г. По умолчанию радиус г равен 1; 5Рпеге((х, У, г] . г) — опРеделяет сферУ с центром в точке (х.у.
г] и радиусом г. По умолчанию радиус г ранен 1; О Ьапнз ((Х.у. г), Г, Й) — Задаст тар С цснтрОМ В ТОЧКЕ [Х,у, г), радИуСОМ г И раоотО- янпем й между центром меридиана н тора. По умолчанию радиус г равен 1, а й равно 2. Напомним, что перечисленные команды только формируют графические объекты. а для их изображения нужно испольэовать команду 0)зр1ау (или Ькар! аузан). Приведем пример, демонстриру)ощий действие трехмерных команд пакета р1оггоо(з. Сформируем графический объект 0 из конуса и сферы, а в качестве объектов т" и 1 определим параллелепипед н ломаную соответственно; > О ;- соне([-1.0.0.-1.5].0.7,со)ог-геок зроеге([0.-0.5.0.5].0.!.со)ог-уе))он'.
> [ : снЬокд([-2.5.-2,-1).[-2. 1.0)): 1;- смче( Ы -1.0.1],[-1,1,.1],[1.1.01,[1.0.0]], со)ог-чгееп, Ьп~схпезк-3): р)осе[0(зр)ау](О.(.),зсе)(пч-.сопыгн(пес). Следующий пример иллюстрирует работу команд, оперирующих с трехмерными графическими структурами. Вначале сформируем графическую структуру в виде 1бб Глава 5. Графика Нар(е конуса, затем повернем его, перенесем по горизонтальной координате, отразим с уменьшением н спроецируем его на плоскость: > я:-р)огя[01яр)ау](соле([0.0.0].0.5.2)): > я1;-госасе(я,О,О,Р1/2): 42г-агапа)а(е(4,2.0,0): > яЗ;=яса)е(геГ)ес((я,[1,0,0]).1.1.1/2): > я4:-рго)ес((я,[[0,0 - Ц,[1.-1.-Ц .[2.5.0.-1П ): > р)о(я[01яр)ау](я.я1.я2,43.44. ахея-ггаиес.яса)1пд-сопя(га!пес): 2 1.5 1 05 0 -05 -1 -05 -0.5 05 25 Управляющие параметры трехмерной графики В командах трехмерной графики для управления видом рисунка используются параметры, частично совпадающие с параметрами двумерной графики.
Коротко перечислим основные нз них, не останавливаясь подробно на уже описанных ранее: С) соогоя-орс — тип используемой системы координат (САНТЕ5]АМ, 5РНЕМ1СА[ нли СТ[! МОЙ1СА[); О 1)с]е-"Хехс" — заголовок, содержащийся в строке "техя"; О ахея-оря — тип осей координат(РМАНЕ, МОМНА[, ООХЕО, МОНЕ); (з яса]) пд-оря — тип масштабирования (ОмсОНЯтмА!меО, сдметдА1меО); с) ог(ептас)оп-[апд] е1, апд]е23 — ракурс; углы апд]е1, апд]е2 даются в градусах; (з у) еи-аг .. Ьг или у) еи-[ах ..
Ьх, ау .. Ьу, аг .. Ьг] - выводимая на рисунок область (все за ее пределами отсекается); (з ргозесс(оп и — тип проекции (перспектива), Ояпя1. Так называемый рыбий глаз при п-д, а при 0-1 соответствует проекции без учета перспективы; с) яяу]е-оря — стиль вывода (РО1МТ вЂ” точки, С1МŠ— линии, н1ООеМ вЂ” сетка с удалением невидимых линий, РАТСН вЂ” заполнитель, Н]МЕРЙАНŠ— сетка с выводом невидимых линий, СОМТООМ вЂ” линии уровня, РАТСНСОМТООМ вЂ” заполнитель и линии уровня); Трехмерная графика 1б7 О сопгонпз-и — Число линий уровня функции двух переменных; О авэо(пд=ор( — задание функции интенсивности заполнителя; параметр ор( может принимать следующие значения: 2 (функция координаты Е), УТ (фуикция коордииат Х и У), х'ч'2 (фуикция трех координат), 76йЕУ5СРЕЕ, УНОЕ, Л(ОИЕ (без раскраски); О дгч(Ч=(яч, и] — число узлов по осям х и у для вычисления поверхности (по умолчанию дгЧ(Ч-[25, 25]); О дгч((эту! е=ор( — тип сетки (сгч апдн1аг! гестапдп! а г - треугольная/прямоугольная); О пнячроч пСэ=п — м(чиимальиое число узлов для вычисления поверхности; этот параметр эквивалентен параметру агч С; О со!оп=орт — цвет поверхности (ге(Ч, Ь)пе,...).