Говорухин В., Цибулин Б. Компьютер в математическом исследовании (1185927), страница 68
Текст из файла (страница 68)
д. Диапазон изменения цвета для текущей палитры можно сузить при помощи команды сахзз([св!и саик)> 0 1 1 0 0 1 1 0 .5 1 .49 0 1 0 1 0 1 0 1 .5 0 .б2 1 0 1 0 0 0 1 1 .5 0 .4 .83 Трехмерная графика 365 Здесь спп и и свах определяют диапазон палитры (соответственно начальный и конечный цвета), который будет использоваться для окрашивания. Команда сах(з без параметров выводит текущие значения сппп и ся)ах, команда сах!5("аисо") позволяет вернуться к автоматическому назначению цветов. Использование подсветки придает больший реализм изображаемым трехмерным объектам.
Для этого в МАТ] АВ имеется графический объект Е]д Ы, создать который можно при помощи команды 1!дЬС. Подсветка действует на объекты, построенные при помощи команд зцггасе, рассЬ, зогт, я)езп, Т!11, Т!113. Управление эффектом подсветки производится путем указания свойств объектов Ахея, Е(дЫ, Ратей и 5иг(асе. Перечислим основные свойства объекта Е(дЫ; С) Со! ог — цвет источника света; с) 5ьу1е — параметр, указывающий бесконечную (по умолчанию) или конечную удаленность (значение 1оса1) источника света от объекта; с) Роз)1)оп — три координаты, задающие положение источника света в случае конечной его удаленности или направление на бесконечно удаленный источник света. Направление во втором случае определяется прямой, проходящей через зту точку и начало координат.
Для ознакомления с друтимн свойствами, влияющими на эффект подсветки, нужно обратиться к справочной системе МАТ].АВ. Отметим, что поля структуры имеют длинные имена, однако для спецификации поля достаточно набрать несколько начальных символов имени, отличающих зто имя от других. Приведем пример различного освещения сферы для иллюстрации применения подсветки.
Покажем также, как управлять свойствами графического объекта зог(асе, Определим красный цвет для всей сферы и будем менять в цикле два параметра, задающих свойства подсветки, — 5ресо(а61(епдтЬ и ОФояе51гепдтЬ (допустимое сокращение ОФезе), а также положение источника света (команда 1! дпт), Определим для всех рисунков одинаковый масштаб, убрав маркировку осей и нанесение сетки, производимые по умолчанию: » и-3; 'кв-1: Гог К-1.п. Гог пм1.п. эеЬр1от(п,п.(К-1)*пня). зрнеге(60); П-Г!пСЬЬ)("Туре", »югсасе'): »емп(ке), 'сеа(ем'.
чигес1'.'есдесо)ог'.П 0 О]): сс=де1(Ь(хе) . 'Сеа(а ' ): зес ( Ь(еа) . ' Спаса ' . 57'опек ( з ! ке( с с) ) ): зегщ(Ке).'ЕпдеЕ(дщзпд'.'Т)е1'.'Расе(.(дп1','ряопд') яет(п(ке) . '5ресн) аг51гепдтп', 1 0*(к-1) ) зег(п(Кв), 'О!Гтике'.0.4*(в-!) -0.2) дг(П о(Г, ах!к една). ах(к оТГ 2-.75: ах!4(Е-а г -г г -к г]) 1!дп1("Рок(С!оп",[-4 (1-е)*1.5 (е-1)*1.5]) епе.
епп Результаты приведены на рис. 14.15. 366 Глава 14. Графина ИДТ1ДВ Рис. 14.1$. Действие различных режимов подсветки Специализированная графика Таблица 14.12. Команды специализированной графики Имя Назначение Построение столбцовой диаграммы Построение круговой диаграимы Рисование цветного многоугольника Рисование гистограммы График в полярных координатах Вывод векторного поля Гистограмма в полярных координатах Ступенчатый график Дискретный график («стебельв) Ьаг и Ьагз р1еи ртеЗ 11П и тз11З Ь155 ро1аг розкег Гпзв втатгв втек и зтеаЗ Графики синуса, построенные при помощи команд Ьаг, зтезя и зта1 гз, будут выгля- деть следующим образом: Команды построения двумерных и трехмерных кривых, поверхностей и команды оформления рисунков не исчерпывают всех графических возможностей МАТ1 Ав.
Приведем в табл. 14.12 перечень некоторых команд специализированной графики, полный список которых можно получить по справке Ье1р зресргарп Специализированная графика 367 л .1 5 10 0 5 10 О 5 10 Рис. 14.16. Команды спецналнзнроаанноп графики ьаг,мель мапл Для построения были выполнены операторы, приведенные ниже: » х (В.б:.б;91:з ип(х); зцэр)о(( 131). Ьаг(х, 1..5). 1ех((4,.5.'Ьаг') зцэр)ос(132). зсеи(х.з), 1ехс(4..5.'1(еи') зцЬр)ос(133).
зсатгв(х,з). Сех1(4,.5,'зсатгз') Стиль надписей был изменен с помощью пункта гоп151у1е контекстного меню графического окна, см. раздел «Интерактивная работа с графикой» этой главы. Для иллюстрации трех других команд специализированной графики создадим структуру и конвертируем ее в числовой массив: » 1-("Зина".'Весна','Лето'.'Осень' ): р-Оооо)е(спаг(1)); зцбр)оС(131). рте(р(:.4) С). ецЬр)ас(133), ЬагЗ(р).
сцЬр)ос(132). ртеЗ(р(:,4).[1 1 1 Ц) Результат выполнения этих команд приведен на рис. 14.17, причем в данном случае расположение надписей было изменено в графическом окне при помощи мыши. 400 24втб 2595 200 Рис. 14.11. Результат выполнения коианд р(е, р(ез и Ьагз Отметим, что пример построения векторного поля при помощи команды Оо1уег дан в главе 15 «Численный анализ в МАТ1.АВ». Для иллюстрации рисования с использованием команды зсипЗ и в полярных координатах приведем рис. 14.18, полученный в результате выполнения следующих команд: » 1-0:,2;12; в-0.1+т; у-ехр(-з" С): гу-геа)(у): ту-(иа9(у); зцьр)о1(121), ро)аг(гу,(У.'К').
зыьр)о1(122), зсеиЗ(гу.!Ул.'к'). ьо)е. р)осз(гу.ту.с. к ) 368 Глава 14. Графика МАТСАВ 20 10 -1 -1 Рис. 14.15. Применение команд ро(аг(слева), з(ещз и р(а(З (справв) Чтобы новые оси не перекрывали старые, разместим их справа, уберем насечки = оси абсцисс и выведем их сверху. Наконец, надпищем новую ось ординат: з зет<П2,'Тдх1зьосат1оп','гздп<'.'Со1ог','попе') ;ет(Ь2.'ХТ1сх(аье1',().'Х11м'.де<<щ,'Х1<м').'Сауег<,'Ьор'1 <1аЬе1< ход<в)') Мад<с пщ(пх 3.5 3 30 2.5 2О сс 15 2 Е 1.5 Я 10 0.5 0 0 5 10 15 20 25 30 Рис.
14др. Совмещение разных типов графики на одном рисунке Как видно, в )узАТ1 АВ на одном рисунке можно совмещать разные виды графи- ков. Приведем еще один пример и продемонстрируем, как изменить маркировку эсей. Вычислим ранг магических матриц размера от ( до 33 и посчитаем логарифм эт величины размерности матрицы и поместим данные в массивы г и з соответ- =твенно. Напомним, что магической называется матрица с одинаковой суммой злементов по строкам, столбцам и диагоналям. Построим столбцовую диаграмму аля массива г и наложим поверх нее кривую <и з Х-).33, г-зегоз(юге(Х)), з-хегоз(мхе<к)): Гог а-Х. М-мадле<в) г(м)-гапк(М):в(м)=)од(м), епс(, )аг(х.г..б), х1аЬе1("и"). Х1аЬе1("дапк").
Гкт)е<"Мадле ма<г1х") Сохраним сведения о свойствах осей (объект Ахез) построенной диаграммы в пе- ременной Ь) и создадим новые оси. Затем нарисуем график; з П)-дсд. Ь2-дхез("Рою<<оп",де<(Ь), "Розтыоп")); )1ог(х,в, '.<пеи<ОЬЬ',2), Специализированная графика 369 Теперь перечислим ряд команд построения объемных фигур и для их описания используем следующие обозначения: К вЂ” вектор радиуса, Н вЂ” число разбиений ок- ружной координаты, массивы Х, Ч, 7 определяют векторы координат, цвет задается массивом С, ТК! — массив треугольников.
Таблица 1а,13. Построение обьемных фигур Назначение Команда Цилиндр Сфера Поверхность из треугольников Поверхность из треугольников без прорисовки сетки (Х,т.7)-су)зпаег(я Н) (Х,т.7)-зраеге(Н) тюиеьи(ТЙ1.Х.У,Т.С) тг1зогт(та1,Х,Ч,Т.С) Пример построения сферы дан на рис, 14.15, Имеются команды для рисования трехмерных объектов: и для перехода от декар- товой системы координат к сферической (сагь2зрЬ), и наоборот (арЬ2сагт). Линии уровня Для изображения линий уровня функции двух переменных, представленной дву- мерным массивом значений, применяется команда сопгопг. Пусть массив 7 опреде- ляет значения функции, вычисленные в определенных массивами Х и Ч точках, Рассмотрим несколько вариантов возможного использования команды сопсоиг: соптоиг(Х.Ч.7) Число линий уровня и их значения при таком вызове выбираются автоматиче- ски, Если Х и Ч отсутствуют, то при обращении соптопг(7) сетка считается квад- ратной. При помощи дополнительного целого параметра К можно задать число линий уровня: соптоог(Х т,7,Н) Чтобы построить линии уровня при требуемых значениях рассматриваемой функ- ции, следует определить массив соответствующих величин Ч: сопгоог(Х,Т.7.Ч) При этом число линий уровня равно 1епдтЬ(Ч).