Опубликован: 03.12.2012 | Доступ: свободный | Студентов: 1102 / 247 | Длительность: 16:43:00
Лекция 8:

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

< Лекция 7 || Лекция 8: 12345 || Лекция 9 >

7.2. Опции графических функций построения объектов в трёхмерном пространстве

Некоторые опции двумерных графических функций, такие как AspectRatio, Axes, AxesLabel, AxesStyle, Background, PlotLabel, PlotRange и Ticks, выполняют те же задачи и для трёхмерных графических функций, и принципы их задания и оказываемого действия остаются прежними. В данном пункте опишем несколько дополнительных опций, специфических для функций построения объектов в трёхмерном пространстве.

Как мы видим в примерах на рисунках 7.1 и 7.2, трёхмерные графики по умолчанию строятся заключёнными в "коробку" (box). Избавиться от неё можно, задав в следующем виде опцию Boxed->False.

Опция ColorFunction определяет, каким образом будет раскрашена поверхность, изображённая на графике. Для расцвечивания графика можно как использовать ту или иную стандартную цветовую схему, задав опцию, например, как ColorFunction->"GreenPinkTones", так и менять цвет вдоль того или иного направления, предварительно задав направление градации, например, следующим образом: ColorFunction->Function[{x,y,z},Hue[z]].

В In[1] на рис. 7.3 мы построили две сферы, при этом построения отличаются друг от друга способом окрашивания поверхности. На рисунке слева в Out[1] поверхность сферы закрашена вдоль оси z, благодаря тому, что нужную опцию мы задали, как ColorFunction->Function[{x,y,z},Hue[z]]. На рисунке справа мы определили направление изменения цвета вдоль линии, описываемой функцией z-x, задав соответствующую опцию в виде ColorFunction->Function[{x,y,z},Hue[-x+z]]. Кроме того, на обоих рисунках мы избавились от коробочки при помощи опции Boxed->False. На рисунке справа мы также убрали координатные оси, задав Axes->False.

Подробней об опции ColorFunction см. книги Е. М. Воробьёва [1, с. 85] и А. Н. Прокопени и А. В. Чичурина [5, с. 60–61].

Использование опции окрашивание трёхмерной поверхности ColorFunction

Рис. 7.3. Использование опции окрашивание трёхмерной поверхности ColorFunction

Наглядность трёхмерного рисунка определяется позицией, с которой этот рисунок рассматривается. Эта позиция выбирается опцией ViewPoint. Положение точки, из которой "рассматривается" рисунок, определяется относительными координатами. Центр коробки с рисунком имеет координаты {0,0,0}, а линейный размер ее наибольшей стороны принимают значения не больше единицы (Е. М. Воробьёв [1, с. 85]). Относительные размеры остальных двух сторон определяются опцией BoxRatios. Она задаётся в виде BoxRatios->{dx,dy,dz}, где dx,dy,dz — относительные размеры сторон коробочки вдоль оси абсцисс, ординат и аппликат, соответственно.

Вернёмся к опции ViewPoint. По умолчанию она задана как ViewPoint->{1.3,-2.4,2}. Е. М. Воробьёв [1, с. 85] упоминает другие наиболее часто используемые значения опции, обращение к которым может осуществляться соответствующими командами в контекстном меню рисунка: "Другие часто используемые значения опции: {0,-2,0} — взгляд на фасад коробочки, {0,-2,2} — сверху с фасадной стороны, {0,-2,-2} — снизу с фасадной стороны, {-2,-2,0} — взгляд с левого угла, {2,-2,0} — взгляд с правого угла, {0,0,2} — строго сверху".

На рис. 7.4 мы изобразили фигуру, похожую на бараний рог, взяв за основу изображение в книге В. П. Дьяконова [2, с. 431–432]. На рисунке слева в Out[1] точка, из которой рассматривается изображение, задана автоматически. На рисунке справа изображение повёрнуто относительно положения по умолчанию: этого мы добились, задав соответствующую опцию как ViewPoint->{-4,-2,3}.

Подробней об опции ViewPoint см. книги Е. М. Воробьёва [1, с. 85] и А. Н. Прокопени и А. В. Чичурина [5, с. 61].

Изменение положения точки, из которой рассматривается изображение

Рис. 7.4. Изменение положения точки, из которой рассматривается изображение

Различать рельеф изображённой поверхности или форму изображённого тела помимо цвета помогают линии криволинейной сетки, образованной линиями пересечения плоскостей х=const, у=const с изображаемой поверхностью. Наличие и частота этих линий регулируются опцией Mesh. Задание Mesh->None полностью убирает линии с рисунка. Mesh->k рисует k линий вдоль каждой из осей абсцисс и ординат; Mesh->{m,n} рисует m линий вдоль оси абсцисс и n линий вдоль оси ординат. Тип линий сетки можно определить заданием требуемых директив в опции MeshStyle. При Mesh->None опция MeshStyle никакого влияния на внешний вид рисунка не оказывает.

На рис. 7.5 мы построили некоторую поверхность в трёхмерном пространстве. На верхнем левом рисунке координатная сетка задана автоматически. На правом верхнем рисунке мы набросили на поверхность более частую сетку, включающую по 30 линий вдоль осей, задав Mesh->30. На левом нижнем рисунке мы изобразили только линии координатной сетки вдоль оси абсцисс, задав Mesh->{20,0}. На правом нижнем рисунке мы вовсе избавились от координатной сетки, задав Mesh->None. Кроме того, в двух последних примерах мы изменили отношение сторон трёхмерного изображения, в первом случае сжав его вдоль оси аппликат, BoxRatios->{1,1,1/4}, а во втором — расширив BoxRatios->{1,1,2}.

Подробней об опциях Mesh и MeshStyle см. книгу А. Н. Прокопени и А. В. Чичурина [5, с. 59].

Задание координатной сетки на трёхмерном рисунке

Рис. 7.5. Задание координатной сетки на трёхмерном рисунке
< Лекция 7 || Лекция 8: 12345 || Лекция 9 >