Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги / Mathematica 5. ╨б╨░╨╝╨╛╤Г╤З╨╕╤В╨╡╨╗╤М

.pdf
Скачиваний:
1
Добавлен:
19.11.2023
Размер:
33.75 Mб
Скачать

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

Многие опции являются общими для функций двухмерной и трехмерной графики. К таким опциям ОТНОСЯТСЯ AspectRatio, Axes, AxesLabel, AxesStyle, Background,

ColorOutput, DefaultColor, DisplayFunction, Epilog, PlotLabel, PlotRange, PlotRegion и Ticks. Опишем теперь те опции, которые присущи именно функциям трехмерной графики.

Координатный параллелепипед, или коробочка, — опция Boxed

Обычно графики трехмерных объектов заключаются в коробочку. Однако от нее иногда лучше отказаться. Для этого укажите опцию Boxed->False.

Закрашивание поверхности — опция Shading

Опция Shading устанавливает или отменяет закрашивание поверхности в серый или иные цвета в зависимости от расположения соответствующего участка поверхно­ сти. Если установить Shading->False, то представление о поверхности можно полу­ чить по имеющейся на ней криволинейной сетке, образованной линиями пересечения плоскостей х = const и у = const с поверхностью.

Plot3D[Sin[x *у] , {х / 0,

г 0/

Shading -»False] ;

Мультимедиа: геометрия, графика, кино, звук

311

\

В случае Shading->True окраска поверхности определяется высотой точки по­ верхности или освещением (опция Lighting->True).

Дополнительное освещение (опция Lighting), его тип (опция AmbientLight) и источники света (опция UghtSources)

Опция Lighting определяет, будет ли использована искусственная подсветка двухмерной поверхности. Если установлено Lighting->True, то тип подсветки опре­ деляется опцией AmbientLight (фоновый цвет), а координаты источников света — опцией LightSources (источники света).

С помощью опции AmbientLight->GrayLevel [уровень освещения] (неотрицатель­ ное число уровень освещения не должно превышать 1) осуществляется равномерное ок­ рашивание поверхности в серый цвет, а если установить AmbientLight->Hue [оттенок] (неотрицательное число уровень освещения не должно превышать 1), осуществляется

окрашивание

в указанный оттенок (цвет Hue-палитры). Можно также указать

Hue [оттенок,

насыщенность, яркость] (неотрицательные числа оттенок, насыщен­

ность, яркость не должны превышать 1). Hue [А] эквивалентно Hue [Л, 1, 1].

В то же время может осуществляться подсветка поверхности источниками света различной окраски, расположенными в точках с заданными координатами {х, у, z). Вот пример.

P l o t 3 D [ s i n [ x y ] , {х , 0 , —J - } /

гЗ Р 1 ,

{у* ° ' —

}*

 

 

L igh tS ou rces -»

 

 

{ { { 1 . 3

,

- 2 . 4 , 2 . } , RGBColor[1,

0, 0 ] } ,

{ { 2 . 7

,

0 . , 2 . } ,

RGBColor[0, 1,

0 ] } ,

{ { - 2 . 3 , - 1 . 4 , 2 . ) ,

 

RGBColor[0, 0,

1 ] } } ] ;

 

По умолчанию сделаны установки AmbientLight->GrayLevel [0] и LightSour- c e s - > { { { l . , 0 . , l . } , RGBColor[ 1 , 0 , 0 ] }, { { l . , l . , l . } , RGBColor[ 0 . ,1 . ,0 . ] }, { { 0 . ,1 . ,1 . } , RGBColor[0. , 0 . , 1.]}.

При установке Lighting->False точки поверхности с меньшими значениями ко­ ординаты z подкрашиваются в более темные оттенки серого.

Точка зрения — опция Viewpoint

Опция view point определяет точку зрения (называемую также центром перспекти­ вы, центром проекций или полюсом), т.е. ту точку, из которой рассматривается сцена. Иными словами, все объекты рисуются так, как они видны из этой точки. Координа­ ты точки зрения задаются в специальной системе координат, центр которой находится в центре коробочки. Иными словами, центр коробочки в этой системе координат имеет координаты {0,0,0}. Длина единичного орта этой системы координат равна наи­ большей стороне коробочки. По умолчанию задана опция viewPoint->{1.3,-2.4/2}. Часто выбираются следующие координаты точки зрения: {0, -2,0} вид спереди (на фасад коробочки), {0,-2,2} - вид сверху спереди, {0,-2,-2} — вид снизу спереди,

{“2,-2,0} — вид из левого угла, {2, - 2, 0} — вид из правого угла, {0,0,2} — вид свер­ ху. Точка зрения должна находиться вне коробочки. Чем дальше находится центр проекций от сцены, тем меньше искажения вследствие центрального проектирования. Чтобы получить представление, как изменяется рисунок при изменении точки зре­ ния, сравните следующие два графика.

312

Гпава 9

P lot3D [4

e sin [- (*-U2-(y-2>2] /

{X/ _ 2 , 2 ) ,

{ y , - 3 ,

3> , P lotR an ge ->

A l l ,

A xesL ab el -> {"x", ”y ” ,

" z " } ];

P lo t3 D [4 esin[ - (x-1)2- (y-2)2l ,

{ x ,

- 2 , 2} ,

{y, - 3 , 3 } , P lo tR a n g e ->

A l l ,

 

A x e sL a b e l- >

{"x",

"y",

" z " },

 

V iew p oin t ->

{ 1 . 2 ,

1 . 2 ,

1 . 2 } ]

; ,

2

Мультимедиа: геометрия, графика, кино, звук

313

Коробочка, ее размеры (опция BoxRatios)

и положение на рисунке (опции ViewCenter и ViewVertical)

Относительные размеры других сторон коробочки определяются опцией BoxRatios. Чтобы увидеть, как эта опция влияет на вид графика, сравните следующие два ри­ сунка.

P l o t 3 D [ S i n [ x y / 3]

,

{ х , 0 ,

' {У/ °г

B o x R a tio s -» {1 ,

2 ,

3} ] ;

 

О 1

0.5

-0.5

Положение коробочки в поле, отведенном для рисунка, определяют опции

ViewCenter и ViewVertical. Если установить ViewCenter->{ 1/2, 1/2, 1/2),

центр коробочки будет помещен в центр рисунка. По умолчанию установлено view- Center->Automatic, при этом центр коробочки находится в центре рисунка. Коор­ динаты центра коробочки могут принимать значения от 0 до 1.

PlotSBfExp[Sin[х]Cos [Зх*у]]-2,{х,-2,2},{у,-3,3}];

314

Гпава 9

Plot3D[Exp[Sin->{1,1,1}];

1

2

Опция ViewVertical указывает направление, которое будет считаться вертикаль­ ным в окончательном рисунке. Настройка по умолчанию ViewVertical->{0, 0, 1} определяет, что в основной системе координат вертикальной осью будет ось аппликат (ось z). -Координаты вектора, указывающего вертикальное направление, могут прини­ мать значения от 0 до 1. Ниже одна и та же поверхность изображена в разных поло­ жениях.

Plot3D[4e-<x-1>2-<y-2)2, {х , - 2 , 2 } , {у, - 3 , 3} , PlotR ange -> A l l , AxesLabel -> { "х", "у", " z " }];

Мультимедиа: геометрия, графика, кино, звук

315

2

P lo t3 D [4 e -< x-1)2-<y-2)2, {x ,

- 2 , 2 ) ,

{ у , - 3 , 3} , P lotR ange -> A l l ,

A xesL abel -> {"x",

"y",

"2 "},

V ie w V e r t ic a l - » {1,

0, 0

> ] ;

316

Гпава 9

Сетка — опция Mesh

Иногда криволинейная сетка линий мешает рассмотреть поверхность. Чтобы уб­ рать сетку, установите Mesh->False.

Раскраска гор и впадин — опция ColorFunction

Интенсивность и цвет точки на поверхности зависят от ее координаты z и опреде­ ляются опцией ColorFunction. По умолчанию ее значение равно Automatic.

Отображение отсекаемых частей — опция ClipFill

Если значение функции в какой-то области выходит за диапазон, указанный в оп­ ции PlotRange, часть поверхности отсекается. Опция ClipFill определяет, как бу­ дут отображаться плоскости отсечения. Если установить ClipFill->Automatic, то плоскости отсечения будут отображаться так же, как и сама поверхность. Иными словами, те части поверхности, которые выходят за диапазон, указанный в опции PlotRange, заменяются частями отсекающих плоскостей. Части отсекающих плоско­ стей как бы становятся крышей (или дном) над (соответственно под) теми областями, над (под) которыми поверхность отсекается.

Plot3D[Sin[х у],{х,0,Pi},{у,0,Pi},PlotRange->{-О.5,0.5},

C l i p F i l l - > A u t o m a t i c ] ;

Если установить clipFill->None, то плоскости отсечения не будут отображаться вообще. Иными словами, те области, над (или под) которыми поверхность выходит за диапазон, указанный в опции PlotRange, окажутся без крыши (или дна).

Plot3D[Sin [х у] ,{х, 0, Pi},{у, 0, Pi},

PlotRange->{-0.5,0.5},ClipFill->None];

Мультимедиа: геометрия, графика, кино, звук

317

Если установить c i i p F i l l - > ^ e e m , то плоскости отсечения будут окрашены в ука­ занный цвет. Иными словами, дно и крыша окрашиваются в указанный цвет.

Если все же хотите раскрасить потолок и пол (крышу и дно) в разные цвета, их придется указать вот так: ciipFill->{цвет пола, цвет потолка}.

Plot3D[Sin[х у],{x,0,Pi},{y,0,Pi},PlotRange->{-0.5,0.5}, ClipFill->{GrayLevel[1],GrayLevel[0]}];

Отображение скрытых поверхностей — опция HiddenSurface

Объекты, расположенные ближе, могут скрывать те, которые расположены о т на­ блюдателя дальше. Очень часто части поверхности, расположенные ближе, скрывают те, которые расположены дальше. По умолчанию опция HiddenSurface равна True. В этом случае поверхность подсвечивается и подкрашивается так, как если бы она была поверхностью непрозрачного тела. Конечно, при этом с выбранной точки зре­ ния некоторые участки поверхности могут быть невидимы. Убрав раскраску, их м ож ­ но сделать видимыми. Для этого установите опцию HiddenSurface->False.

318

Гпава 9

p lo t3 D [S in [x + 3 S in [ у ] ] , { x , - P i , P i } , { y , - P i , P i } , Hid denSurface->True];

Вычерчивание графиков

Для вычерчивания графиков образов в трехмерном пространстве чаще всего ис­ пользуются следующие функции трехмерной графики: Plot3D, ParametricPlot3D и

ListPlot3D.

Построение графика функции двух переменных

Простейшими способами задания функции двух переменных являются явный (т.е. в виде равенства г=.Дх, у)) и табличный. Для изображения графика функции двух переменных, заданной в виде равенства z= Лх>у), предназначена функция P lo t3 D , а графики таблично заданных функций двух переменных можно начертить с помощью функции L is tP lo t 3 D .

Мультимедиа: геометрия, графика, кино, звук

319

Построение поверхности, заданной уравнением z = f(x, у), — функция Plot3D

Вызов Plot3D[/,

{*,

xrnin,

xmax),

{у, ymin, ушах))

генерирует график / как

функции х и у. То

же

самое

делает и

вызов Plot3D[{/,

оттенок), {х, xmin,

хтах}, {у, ymin, утах) ], но при этом указывается оттенок графика. Функция от- тенок должна возвратить одну из директив GrayLevel, Hue или RGBColor либо объ­ ект SurfaceColor. На приведенном ниже рисунке с помощью функции оттенок на пересеченной местности, описываемой уравнением z = sin(x+3 sin у), нанесены “солнечные пятна” и “тени” (по всей видимости, от туч).

P lot3D [ {S in [x+3Sin [у] ] , G rayL evel [ ( S i n [у] * S in [ x ] + l ) / 2 ] }, {x, - P i , P i },

{ y , - P i , P i } ] ;

Построение графика таблично заданной функции двух переменных — функция ListPlot3D

Функция ListPlot3D служит для построения графика таблично заданной функции двух переменных. Вызов функции имеет вид ListPlot3j^[таблица] или ListPlot3D [таблица, таблица оттенков]. Таблица должна быть прямоугольным массивом ве­ щественных чисел. Иными словами, она должна быть списком списков одинаковой длины. Числа в ней интерпретируются как значения функции. Если таблица имеет размер /яхл, то таблица оттенков должна иметь размер (/я-1)х(л-1). Элемент таб­ лицы оттенков и в самом деле должен быть оттенком — он должен либо быть объек­ том SurfaceColor, либо иметь тип GrayLevel, Hue или RGBColor. Ниже показан

горный ландшафт, сгенерированный с помощью таблицы функции z = е2,5акху, к ко­ торой добавлены случайные возмущения.

L is tP lo t3 D [

 

 

T ab le [Exp [ 2 .5 Cos [x у] ] +

 

S in [ x * y / 3] A 2 Random [R eal,

{ - 2 , 2 } ] ,

г л ^

i f Л 3 P i

P i . _

{*' °’ “Г

'•»>'{*■

' 30J1'

Mesh -> F a l s e ] ;

320

Гпава 9