Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Опции команд трёхмерной графики



Команда plot3d( )

Функцию двух переменных можно отобразить как поверхность в трёхмерном пространстве, две оси которого соответствуют значениям двух независимых переменных, а по третьей оси откладываются значения функции. В Maple подобную процедуру визуализации функции двух переменных выполняет команда plot3d(), которая, как и команда отображения графика функции одной переменной plot3d( ), расположена в стандартной библиотеке, а поэтому доступна пользователю в любой момент. Эта команда позволяет отображать график функции, заданных как в явном виде, так и в параметрическом виде.
Синтаксис команды plot3d() практически полностью соответствует синтаксису команды plot() с небольшим очевидным дополнением, связанным с наличием второй дополнительной переменной:

plot3d(expr, x=a..b, y=c..d, опции )

Здесь параметр expr представляет алгебраическое выражение или обращение к пользовательской функции двух переменных с диапазонами изменения, определяемыми вторым и третьим параметром, в которых вместо x и y следует задавать имена переменных. Пользовательскую функцию можно определять непосредственно в команде, но в этом случае задавать имена переменных не надо:

plot3d((x, t)-> cos(x)*sin(t), -1..1, -1..1);

Отметим, что и выражение, и функция, представляющие параметр expr, не должны содержать неопределённых символьных переменных, кроме двух упомянутых независимых переменных. Границы диапазонов представляются числами, хотя для второй независимой переменной они могут быть выражениями, зависящими от первой переменной. В этом случае график функции двух переменных отображается не на прямоугольной области, а на четырёх угольной, у которой две противоположенные границы являются криволинейными. Например, следующая команда:

plot3d(cos(x)*sin(t), x=-1..1, t=-5..x^2);

отображает график функции на области, у которой одна из границ представлена параболой.

Опции для команд трёхмерной графики определяются так же, как и для команд графического отображения на плоскости, в виде уравнения, в левой части которого стоит имя опции, а в правой её значение. Многие опции команд пространственной графики полностью соответствуют своим двухмерным аналогам, правда в некоторых опциях добавлена дополнительная функциональность (смотри, например, опцию color ), но есть и специальные опции, отражающие специфику пространственной графики. В таблице ниже перечислены все опции с их кратким описанием и возможными значениями.


Отображение пространственной кривой

Можно построить круговую цилиндрическую поверхность заданного радиуса вдоль пространственной кривой командой tubeplot(). В примере ниже построена такая поверхность вдоль кривой предыдущего примера.

Линии уровня на поверхности

Две команды связаны с отображением векторных полей в пространстве. Команда gradplot3d( ) отображает поле градиента выражения, зависящего от трёх переменных, в паралелепипеде, определяемом диапазонами их изменения. Команда fieldplot3d ( ) строит в параллелепипеде, определяемом диапазонами изменения трех переменных, векторного поля с компонентами, зависящими от трёх заданных переменных. В обеих этих командах можно использовать опцию arrows, значение которой определяет вид отображаемого вектора.

Построение векторных полей

И последняя команда, на которой мы остановимся, это команда отображения плоского многоугольника в пространстве, который задан списком своих вершин. Для этих целей в пакет plots включена команда polygonplot3d( ), синтаксис которой полностью соответствует синтаксису её двумерного аналога polygonplot( ). Единственное отличие связано с заданием точек: в трёхмерной команде каждая точка представляется трёхэлементным списком своих координат, причём точки не обязательно должны лежать в одной плоскости.

Команда plot3d( )

Функцию двух переменных можно отобразить как поверхность в трёхмерном пространстве, две оси которого соответствуют значениям двух независимых переменных, а по третьей оси откладываются значения функции. В Maple подобную процедуру визуализации функции двух переменных выполняет команда plot3d(), которая, как и команда отображения графика функции одной переменной plot3d( ), расположена в стандартной библиотеке, а поэтому доступна пользователю в любой момент. Эта команда позволяет отображать график функции, заданных как в явном виде, так и в параметрическом виде.
Синтаксис команды plot3d() практически полностью соответствует синтаксису команды plot() с небольшим очевидным дополнением, связанным с наличием второй дополнительной переменной:

plot3d(expr, x=a..b, y=c..d, опции )

Здесь параметр expr представляет алгебраическое выражение или обращение к пользовательской функции двух переменных с диапазонами изменения, определяемыми вторым и третьим параметром, в которых вместо x и y следует задавать имена переменных. Пользовательскую функцию можно определять непосредственно в команде, но в этом случае задавать имена переменных не надо:

plot3d((x, t)-> cos(x)*sin(t), -1..1, -1..1);

Отметим, что и выражение, и функция, представляющие параметр expr, не должны содержать неопределённых символьных переменных, кроме двух упомянутых независимых переменных. Границы диапазонов представляются числами, хотя для второй независимой переменной они могут быть выражениями, зависящими от первой переменной. В этом случае график функции двух переменных отображается не на прямоугольной области, а на четырёх угольной, у которой две противоположенные границы являются криволинейными. Например, следующая команда:

plot3d(cos(x)*sin(t), x=-1..1, t=-5..x^2);

отображает график функции на области, у которой одна из границ представлена параболой.

Опции для команд трёхмерной графики определяются так же, как и для команд графического отображения на плоскости, в виде уравнения, в левой части которого стоит имя опции, а в правой её значение. Многие опции команд пространственной графики полностью соответствуют своим двухмерным аналогам, правда в некоторых опциях добавлена дополнительная функциональность (смотри, например, опцию color ), но есть и специальные опции, отражающие специфику пространственной графики. В таблице ниже перечислены все опции с их кратким описанием и возможными значениями.


Опции команд трёхмерной графики

Опция Описание
ambientlight Задаёт цвет внешнего источника интенсивностями его красной, зелёной и синей составляющих, представленными трёхэлементным списком вещественных чисел из интервала [0, 1].Эта опция имеет значение при определении пользователем собственной схемы освещённости поверхности
axes Определяет тип отображаемых осей координат. Эта опция может принимать следующие значения: NORMAL - обычные оси координат, пересекающиеся в точке (0, 0, 0); BOXED - поверхность заключена в охватывающий параллелепипед с нанесёнными шкалами по трём граням; FRAME - три оси отображаются по внешним граням охватывающего параллелепипеда; NONE - оси не отображаются
axesfont Задаёт шрифт для надписей под засечками вдоль осей координат. Значение этой опции аналогично значению опции font
color Задаёт цвет отображаемой поверхности в случае её закрашивания или цвет линий сетки в случае отображения поверхности в виде каркаса или линий уровня. В качестве значения этой опции может выступать одно из зарезервированных значений цвета в Maple: aquamarine, black, blue, navy, coral, cyan, brown, gold, green, gray, grey, knaki, magenta, maroon, orange, pink, plum, red, sienna, tan, turquoise, violet, wheat, white и yellow. Можно также определить и собственный цвет, соответствующий смешению заданных частей красного, зелёного и синего цветов. Это осуществляется с помощью следующей команды macro(palegreen=COLOR(RGB,.5607,.7372,.5607)), где palegreen имя константы нового цвета, в котором красный составляет 0.5607 части, зелёный 0.7372 и синий 0.5607. Задание значения в форме выражения, содержащего две независимые переменные, определяет цвет в каждой точке поверхности по цветовой схеме HUE. Если цвет определяется с помощью процедуры, то она должна иметь два аргумента и возвращать значение цвета
contours Определяет количество линий уровня при отображении их на поверхности или список значений отображаемых линий уровня. Значение по умолчанию равно 10
coords По умолчанию при выводе как явно заданной функции, так и параметрически заданной функции используется декартовая система координат (cartesian), т. е. задаваемое уравнение кривой рассматривается именно в этой системе координат. Данная опция меняет тип системы координат. Возможные значения: bipolarcylindrical, bisherical, cardiodal, cardioidcylindrical, casscylindrical, confocalellip, cofocalparab, conical, cylindrical, ellcylindrical, ellipsoidal, hypercylindrical, invcasscylindrical, invellcylindrical, invoblspheroidal, invprospheroidal, logcoshcylindrical, logcylindrical, maxwellcylindrical, oblatespheroidal, paraboloidal, paracylindrical, prolatespheroidal, rosecylindrical, sixsphere, spherical, tangentcylindrical, tangentsphere и toroidal, описание которых можно получить в справочной системе Maple с помощью команды? coords
filled Установка значения этой опции равным  true приводит к тому, что область, ограниченная поверхностью и плоскостью xy, отображается как твёрдое непрозрачное тело и закрашивается в соответствии с используемой цветовой схемой
font Задаёт шрифт для вывода текста а рисунке. Значение опции задаётся в виде списка [семейство, стиль, размер]. Параметр семейство задаёт гарнитуру шрифта: TIMES, COURIER, HELVETICA или SYMBOL. Параметр стиль определяет стиль шрифта: для гарнитуры TIMES возможны значения ROMAN, BOLD, ITALIC или BOLDITALIC, для гарнитур COURIER и HELVETICA стиль можно опустить, или задать BOLD, OBLIQUE или BOLDOBLIQUE, для шрифта SYMBOL стиль не задаётся. Последний параметр задаёт размер шрифта в пунктах (points) (один пункт приблизительно равен 1/72 дюйма)
grid Эта опция определяет прямоугольную равномерную сетку значений независимых переменных отображаемой функции, на которой вычисляются её значения для построения поверхности и задаётся в виде двухэлементного списка [m, n], в котором каждый элемент является целым числом, определяющим количество точек по соответствующей координате. По умлчанию используется сетка [25, 25]
gridstyle Задаёт тип отображаемой сетки: составленной из прямоугольников или треугольников на основании вычисленных её значений в соответствии с установками, определяемыми опцией grid. Она может принимать одно из двух значений RECTANGULAR и TRIANGULAR
labels Задание названий осей координат в виде списка [x, y, z]. Параметры x, y и z задаются в виде строк и соответствуют отображаемым названиям трёх осей декартовой системы координат. По умолчанию оси не подписываются
labeldirections Эта опция определят направление отображения названия осей и задаётся в виде списка [x, y, z], элементы которого могут принимать одно из двух значений HORISONTAL или VERTICAL
labelfont Задаёт шрифт, которым отображаются названия осей координат. Значение этой опции аналогично значению опции font
light Эта опция определяет расположение и цвет направленного источника света при задании пользовательской схемы подсветки. Её значения выдаются в виде списка [phi, theta, r, g, b], элементы которого имеют следующий смысл: phi и theta определяют углы направления, из которого исходит направленный свет (задаются в сферической системе координат), а r, g, b задают числовые интенсивности красной, зелёной и синей составляющих цвета источника
lightmodel Эта опция позволяет выбрать одну из предопределённых схем подсветки и может принимать следующие значения: 'none' (нет подсветки), 'light1', 'light2', 'light3' или 'light4'
linestyle Определяет тип линии на поверхности. Значением этой опции является целое число n. При n=0 или 1 линии отображаются как сплошные, значение, равное 2, соответствует отображению линии точками, 3 - пунктиром и 4 - штрих пунктиром
numpoints Определяет минимальное количество n вычисляемых точек, по которым строится поверхность (значение по умолчанию равно 625=25^2). Эта опция перекрывает задание сетки опцией grid, определяя её новые значения по осям независимых переменных, равными равномерно распределённым sqrt(n) точкам в диапазонах изменения независимых переменных
orientation Задаёт углы в сферической системе координат направления, из которого пользователь смотрит на отображаемую поверхность: [theta, phi]. Углы задаются в градусах и по умолчанию равны [45, 45]
projection Задаёт проекцию, в которой отображается поверхность. Значением этой опции может быть целое число r из диапазона [0, 1], причём 0 соответствует широкоугольной перспективе, 1 - ортогональной проекции, промежуточные значения разным типам перспектив. Можно использовать три зарезервированных ключевых слова: 'FISHEYE' для широкоугольной перспективы (r=0), 'NORMAL' для перспективной проекции с параметром r=0.5 и 'ORTHOGONAL' для ортогональной проекции (r=1)
scaling Задаёт масштаб, в котором отображается поверхность. Если значение данной опции равно CONSTRAINED, то это соответствует заданию абсолютных значений по осям координат, т. е. одна единица измерения по оси независимой переменной равна одной единице измерения по оси значений функции. Значение по умолчанию равно UNCONSTRAINED, и это соответствует тому, что оси растягиваются таким образом, чтобы их размеры соответствовали размерам графического окна вывода
shading Определяет. какая схема закрашивания применяется при отображении поверхности. Допустимые значения: XYZ (цвет точки поверхности зависит от значений трёх её координат), XY (цвет точки поверхности зависит от значений её двух независимых координат), Z (цвет точки поверхности зависит от значения функции: минимальное представляется синим цветом, максимальное - красным, остальные оттенками при переходе от синего к красному), ZGRAYSCALE (цвет точки поверхности зависит от значения функции: минимальное представляется чёрным цветом, максимально - бледно-серым, остальные оттенками при переходе от чёрного к бледно-серому), ZHUE (цвет точки поверхности зависит от значения функции: от минимального сиреневого через синий, зелёный и жёлтый к максимальному красному) и NONE (поверхность не закрашена)
style Определяет как будет отображаться поверхность. Допустимые значения: POINT (точкам. представляющими значения функции на сетке), HIDDEN (каркасная модель с удалением невидимых линий), PATCH (закрашенная поверхность с линиями сетки), WIREFRAME или LINE (каркасная модель без удаления невидимых линий), CONTOUR (линиями уровня), PATCHNOGRID (закрашенная поверхность без линии сетки), PATCHCONTOUR (закрашенная поверхность с линиями уровня)
symbol Определяет тип символа, которым помечаются точки поверхности функции при опции style=POINT. Может принимать следующие значения: BOX для " квадратика", CROSS для +, CIRCLE для " кружочка", POINT для " точки" и DIAMOND для " ромбика"
symbolsize Задаёт размер символа в пунктах. Его значением может быть любое натуральное число. По умолчанию используются символы размером 10 пунктов. Действие этой опции не распространяется на символ точка, задаваемый опцией symbol=POINT
thickness Задаёт толщину линий на поверхности. Значение является целым числом и изменяется от 0 до 3, соответствуя изменению толщины линий от самой тонкой до самой жирной
tickmarks Определяет число точек, не менее которого должно быть помечено по горизонтальной и вертикальной оси координат. Значение задаётся в виде списка [l, n, m]
title Определяет строку, которая выводится как заголовок рисунка. По умолчанию заголовок не выводится. В строке можно использовать специальные комбинации символов. Например, \n осуществляет перевод на новую строку, формируя тем самым многострочный заголовок
titlefont Определяет шрифт для заголовка рисунка. Значение этой опции аналогично значению опции font
view Определяет минимальное и максимальное значения координаты z, между которыми отображается поверхность, а также диапазоны изменения независимых координат в виде [xmin..xmax, ymin..ymax, zmin..zmax]. По умолчанию отображается вся поверхность без обрезания в пределах заданных диапазонов изменения независимых переменных в команде plot3d( )

Как видно из описания команды plot3d( ) и её опций, работа с ней интуитивно ясна и проста. Например, для отображения графика функции z=cos(x)y^2 с заголовком и значениями опций по умолчанию следует выполнить команду:

По умолчанию поверхность закрашивается в соответствии с цветовой схемой XYZ, которая выбирает цвет точки поверхности в зависимости от значений трёх её координат.
Можно отобразить ту же поверхность в виде каркасной модели с удалёнными невидимыми линиями и явно заданным направлением взгляда на неё:

Командой plot3d( ) можно отображать параметрически заданные поверхности. Только надо помнить, что для параметризации трёхмерной поверхности следует использовать два параметра, т. е. задать три координаты точек поверхности как функции или выражения двух переменных. Синтаксис команды plot3d( ) в этом случае будет иметь следующий вид:

plot3d ( [x-expr, y-expr, z-expr], диапазон-парам1, диапазон-парам2, опции)

Рисунок ниже иллюстрирует отображение параметрически заданной поверхности в декартовой системе координат

Для улучшения вида отображаемой поверхности явно задана сетка точек, на которой вычисляются значения параметрически заданной функции поверхности.

6.2 Меню для работы с трёхмерной графикой.

Как и в случае с двухмерной графикой, после построения командой plot3d( ) или другой командой пространственной графики из пакета plots пространственного образа функции двух переменных можно изменить его внешний вид, переустановив значение некоторых опций с помощью команд основного меню интерфейса пользователя, контекстной панели инструментов или команд контекстного меню, предварительно выделив график на рабочем листе. Напомним, что при этом меняется основное меню интерфейса пользователя, а также заменяется контекстная панель инструментов таким образом, чтобы обеспечить доступ к командам интерфейса, работающим с пространственным графическим отображением.

На рисунке показан общий вид интерфейса пользователя с меню пространственной графики и контекстной панелью инструментов при выделении на рабочем листе трёхмерного изображения.

 

При выделении пространственной графики на рабочем листе меню Insert, Spreadsheet и Options строки основного меню, заменяются новыми: Style, Color, Axes, Projection, Animation и Export, которые позволяют изменить основные опции построенного графика, а также сохранить его в различных форматах с помощью команд последнего меню.

Все команды этих меню дублируются в контекстном меню, в котором дополнительно присутствует команда Copy для копирования графики в буфер обмена. Некоторые команды можно вызвать нажатием соответствующих кнопок контекстной панели инструментов для работы с пространственной графикой. На рисунке показаны опции, которым соответствуют кнопки контекстной панели инструментов. Дополнительно к изменению основных меню, как и в случае с двухмерной графикой, сокращается список команд меню Format. Далее кратко остановимся на всех командах меню трёхмерной графики.

Команды меню Style разделены на две большие группы. В первой группе (верхняя часть меню) сосредоточены команды, влияющие на способ отображения поверхности. Они работают как группа переключателей - только одна из них может быть выбрана. При этом слева от неё отображается " галочка". Эти команды меняют значение опции style на указанное в скобках после имени команды: Patch (PATCH), Patch w/o grid (PATCHNOGRID), Patch and contour (PATCHCONTOUR), Hidden line (HIDDEN), Contour (CONTOUR), Wireframe (WIREFRAME), Point (POINT) и Default (значение по умолчанию, обычно PATCH ). На контекстной панели инструментов этим командам соответствуют первые семь кнопок.

Команды подменю Symbol (Символ), Line Style (Тип линии) и Line Width (Толщина линии) устанавливают значения опций symbol, linestyle и thickness, а команда Symbol Size отвечает за установку и изменение размеров символов отображения точек при изображении линий поверхности точками. Они полностью соответствуют аналогичным подменю из меню работы с плоской графикой. При работе с пространственной графикой в меню Style добавляется ещё одно подменю Grid Style, которое позволяет выбрать отображаемую на поверхности сетку: прямоугольную (команда Rectangular ) или треугольную (команда Triangular ), что соответствует установке значений опции gridstyle. Кнопок на контекстной панели инструментов для этих опций не предусмотрено.

Команды меню Color меняют цветовую схему закрашивания отображаемой поверхности и схему подсветки поверхности. Группа команд установки цветовой схемы закрашивания изменяет значение опции shading (в скобках указано значение этой опции): XYZ (xyz), XY (xy), Z (z), Z(Hue) (ZHUE), Z(Grayscale) (ZGRAYSCALE), No Coloring (NONE) и Default Coloring (умалчиваемая схема, зависит от устройства отображения, для рабочего листа XYZ ).

Вторая группа команд этого меню позволяет выбрать либо предопределённую схему подсветки: Light Scheme 1 (light1), Light Scheme 2 (light2), Light Scheme 3 (light3), Light Scheme 4 (light4), либо установленную пользователем: User Lighting, либо вообще отключить подсветку поверхности: No LIghting (none). В скобках указаны значения опции lightmodel, на установку которой влияют перечисленные команды подсветки. Команда User Lighting становится доступной только тогда, когда при создании трёхмерного отображения командой plot3d( ) пользователь явным образом указал значение опций ambientlight и light, которые в совокупности определяют схему подсветки.

Команды меню Axes позволяют установить значения BOXED, FRAME, NORMAL и NONE опции axes. На контекстной панели инструментов им соответствуют четыре кнопки из группы кнопок, следующей за кнопками управления типом представления поверхности.

В меню Projection также выделены две группы команд: одна устанавливает значения опции projection, а вторая предназначена для опции scaling.

Первая группа команд устанавливает разные типы перспективной проекции для отображения трёхмерных поверхностей (в скобках указано значение r опции projection ): No Perspective (1), Near Perspective (0.2), Medium Perspective (0.5) и Far Perspective (0.8).

Для опции scaling предусмотрено две команды, устанавливающие её два значения: Constrained (CONSTRAINED) и Unconstrained (UNCONSTRAINED). На панели инструментов значение этой опции можно устанавливать с помощью последней кнопки. Если она не нажата, то соответствует значению UNCONSTRAINED, если нажата - установлено значение CONSTRAINED.

Меню Animation специально предназначено для анимации изображений и становится доступным, когда в документе Maple пространственная графика выводится командой создания анимации animate3d( ) или display().

Командами последнего меню Export можно сохранить выделенный на рабочем листе график в одном из следующих форматов: DXF, EPS, GIF, JPG, POV, BMP и WMF.

Интерфейс пользователя для работы с пространственной графикой позволяет быстро изменить направление взгляда на отображаемую поверхность, т. е. посмотреть на поверхность с разных точек зрения. Для этого достаточно разместить указатель мыши в области пространственного рисунка и, удерживая нажатой левую кнопку мыши, перемещать его. Поверхность будет вращаться и пользователь может выбрать наиболее удачный ракурс её отображения. При этом в двух левых полях контекстной панели инструментов будут отображаться углы направления, из которого пользователь смотрит на поверхность. Эти два угла определяются в сферической системе координат и имеют значение в градусах. Можно точно установить направление взгляда, воспользовавшись счётчиками, расположенными справа от полей отображения углов, или установить их значения непосредственно в полях.


Поделиться:



Последнее изменение этой страницы: 2019-06-19; Просмотров: 159; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.031 с.)
Главная | Случайная страница | Обратная связь