Графический пакет системы Mathematica

Автор работы: Пользователь скрыл имя, 18 Апреля 2013 в 03:11, курсовая работа

Описание работы

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

Содержание работы

Введение……………………………………………………………………………………....3
Глава I. Двумерная графика 5
1.1.Двумерная графика. Графическая функция Plot. 5
1.2.Опции функции Plot 7
1.3.Директивы двумерной графики 10
1.4.Построение графика по точкам (функция List Plot) 12
1.5.Получение информации о графических объектах 13
1.6.Перестроение и комбинирование графиков 15
1.7.Примитивы двумерной графики 16
1.8.Графики функций, заданных в параметрической форме 18
Глава II. Трехмерная графика 21
2.1.Трехмерная графика. Построение контурных графиков. 21
2.2.Построение графиков поверхностей (функция Plot 3D) 24
2.3.Опции и директивы трехмерной графики 25
2.4.Графическая функция ListPlot3D 30
2.5.Параметрическая трехмерная графика. 31
2.6.Построение фигур, пересекающихся в пространстве 35
2.7.Функция Graphics3D, ее опции и примитивы 37
2.8.Вставка графических и иных объектов 39
Заключение…………………………………………………………………………………..43
Список литературы……………………………………………………………

Файлы: 1 файл

курсавая работа.docx

— 1.62 Мб (Скачать файл)

2.2.Построение графиков поверхностей (функция Plot 3D)

 

Функция двух переменных z = f(x, у) образует в пространстве некоторую трехмерную поверхность или фигуру. Для их построения приходится использовать координатную систему с тремя осями координат: х, у и z. Поскольку экран дисплея плоский, то на самом деле объемность фигур лишь имитируется – используется хорошо известный способ наглядного представления трехмерных фигур с помощью аксонометрической проекции.

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

Для построения графиков трехмерных поверхностей используется основная графическая функция Plot 3D:

  • Plot3D[f, {x, xmin, xmax), {у, ymin, ymax}] – строит трехмерный график функции f переменных х и у;
  • Plot3D[{f, s}, {x, xmin, xmax}, {y, ymin, ymax}] – строит трехмерный график, в котором высоту поверхности определяет параметр f, а затенение – параметр s.

На рис.2.4. показан пример построения поверхности, описываемой функцией двух переменных cos(x у) при х и у, меняющихся от -3 до 3. Поверхность строится в виде каркаса с прямоугольными ячейками с использованием функциональной окраски. Все опции заданы по умолчанию.

 
Рис.2.4. Пример построения поверхности cos(xy) функцией Plot3D с опциями по умолчанию

Этот график будем считать исходным для демонстрации его модификаций, получаемых путем изменения опций.

2.3.Опции и директивы трехмерной графики

 

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

На рис.2.5. показана исходная поверхность (рис. 2.4.), построенная с применением опции PlotPoint → 50. Это означает, что поверхность по каждой оси делится на 50 частей (в исходном графике по умолчанию используется деление на 10 частей). Масштаб по вертикали задается автоматически, с тем чтобы все высоты поверхности не ограничивались.

На рис. 2.5. показана та же поверхность, полученная с применением опции PlotRange → {0, 0.5}, срезающей верхнюю часть поверхности (точки с ординатами выше 0.5). График поверхности при этом существенно меняется .

 
Рис. 2.5. Поверхность рис.2.4. с большим числом ячеек

 
Рис. 2.6. Математическая поверхность с отсеченной верхней частью

Опция Boxed → False удаляет ограничивающие рамки, образующие "ящик", в который вписывается построенная трехмерная поверхность (рис. 2.7.). Остаются лишь координатные оси.

 
Рис.2.7.Построение трехмерной поверхности без ограничительного "ящика"

Опция Viewpoint позволяет включить при построении отображение перспективы и изменять углы, под которыми рассматривается фигура. Рисунок 2.8.иллюстрирует применение этой опции.

 
Рис. 2.8. Математическая поверхность, построенная с учетом перспективы

Опция Mesh → False позволяет удалить линии каркаса фигуры. Нередко это придает фигуре более естественный вид (рис.2.9.) – обычно мы наблюдаем такие фигуры без линий каркаса.

 
Рис.2.9.Математическая поверхность с удаленными линиями каркаса

В ряде случаев, напротив, именно линии каркаса несут  важную информацию. Система строит каркас трехмерных поверхностей двумя  способами – с использованием и без использования алгоритма  удаления невидимых линий. Рисунок  2.10. показывает результат построения при использовании алгоритма удаления невидимых линий. Нетрудно заметить, что в этом случае поверхность выглядит достаточно эстетично даже без применения функциональной закраски.

 
Рис.2.10. Построение каркаса математической поверхности с использованием алгоритма удаления невидимых линий

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

 
Рис.2.11. Построение каркаса математической поверхности без использования алгоритма удаления невидимых линий

Таким образом, как и ранее, применение опций позволяет легко управлять  характером и типом графиков, придавая им вид, удобный для заданного  применения. На рис. 2.12. показан пример построения трехмерного графика с применением одновременно нескольких опций.

 
Рис.2.12. Пример построения трехмерного графика с несколькими опциями

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

В разделе приложения, посвященном  данному уроку, указан ряд дополнительных директив и опций трехмерной графики. С их помощью можно расширить  возможности построения графиков. Читателю рекомендуется самостоятельно построить  графики ряда поверхностей с использованием различных опций.

2.4.Графическая функция ListPlot3D

 

    Часто трехмерная поверхность задается массивом своих высот (аппликат). Для построения графика в этом случае используется графическая функция ListPlot3D:

  • ListPlot3D [array] – строит трехмерный график поверхности, представленной массивом значений высот;
  • ListPlot3D [array, shades] – строит график так, что каждый элемент поверхности штрихуется (затеняется) согласно спецификации shades.

Plot Joined – дополнительная опция для ListPlot, указывающая, следует ли соединять линией точки, нанесенные на график.

Пример  применения функции ListPlot3D показан на рис.2.13. График построен по данным таблицы tS, формирующей значения аппликат поверхности, которая описывается функцией cos(xy).

 

 
Рис.2.13. Пример применения функции ListPlotSD

Командой Options [ListPlot3D] можно вывести полный список опций данной функции, чтобы использовать их для модификации графиков, которые строит эта функция.

2.5.Параметрическая трехмерная графика.

 

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

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

Функция ParametricPlot3D используется в следующих  видах:

  • ParametricPlot3D[ {fx, fy, fz}, {t, tmin, tmax}, {u, umin, umax} ] – строит трехмерную поверхность, параметризованную по t и u;
  • ParametricPlot3D[{fx, fy, fz}, {t, tmin, tmax}] – создает трехмерную пространственную кривую, параметризованную переменной t, которая изменяется от tmin до tmax;
  • ParametricPlot3D[ { fx, fy, fz, s},…] – выполняет затенение графика в соответствии с цветовой спецификацией s;
  • ParametricPlot3D[ { {fx,fy, fz}, {gx, gy, gz},…},…] – строит несколько объектов вместе.

Эта функция  имеет множество опций, которые  можно вывести с помощью команды Options [ParametricPlotSD]. Большая часть из них уже рассматривалась ранее. При этом даже при использовании только опций, заданных по умолчанию, можно получить любопытные построения. На рис. 2.14. показан простой пример применения функции ParametricPlot3D для построения замкнутой линии, расположенной в пространстве. Это, так сказать, объемный вариант, фигур Лиссажу, построение которых было описано ранее.

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

 
Рис.2.14. Построение пространственной кривой, заданной в параметрической форме

Первым примером может служить  фигура "рог изобилия", показанная на рис. 2.15. По существу, это раскручивающаяся объемная спираль, диаметр которой постепенно нарастает.

 
Рис.2.15. Построение фигуры "рог"

Другой пример – объемное кольцо с сечением, напоминающим знак бесконечности (бесконечность). Результат построения показан на рис. 2.16. Обратите внимание на интересный эффект – из кольца удален сектор, что позволяет рассмотреть его внутреннее строение. Все, что потребовалось для создания этого эффекта, – это задать верхний предел изменения переменной t равным 2π – 0.6. Если сделать этот предел равным 2π, то кольцо станет непрерывным.

 
Рис.2.16. Построение кольца с удаленным сектором

 
Рис.2.17. Построение сферы с удаленным сегментом

Третий пример такого рода – построение объемной сферы. Этот пример показан на рис.2.17. Здесь также использован прием изменения значений переменной t для получения выреза сегмента сферы. Опять-таки, задав изменение t от 0 до 2π, можно получить построение всей сферы без выреза.

Любопытно отметить, что описанные  приемы создания вырезов в объемных фигурах позволяют наблюдать  внутреннюю часть фигур, которая  обычно (без вырезов) не видна. Это  делает описанный прием построения фигур с вырезом достаточно продуктивным.

2.6.Построение  фигур, пересекающихся в пространстве

 

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

Проиллюстрируем это на примере. На рис.2.18. показано задание и построение одного графического объекта gl – объемной спирали, полученной сворачиванием ленты.

 
Рис.2.18. Построение объекта gl – объемной спирали

Второй объект, построение которого представлено на рис.2.19., – это объемное кольцо. Его построение было описано выше. В конце части документа, показанного на рис. 2.19, задана функция Show для вывода объектов на одном графике.

 
Рис.2.19. Построение объекта g2 – объемного кольца с удаленным сегментом

Рисунок 2.20. демонстрирует комбинированный график, построенный функцией Show. Он показывает кольцо, через отверстие которого проходит объемная спираль. Вырез в кольце показывает, как спираль проходит внутри кольца.

 
Рис.2.20. Построение комбинированного объекта – спираль проходит внутри кольца

Графики такого типа дают большие  возможности визуализации трехмерных поверхностей и фигур.

2.7.Функция  Graphics3D, ее опции и примитивы

 

      Наряду с построением графиков поверхностей, заданных аналитическими выражениями, имеется возможность создания графиков из различных элементарных геометрических объектов, называемых примитивами. Они включаются в список параметров функции Graphics3D [primitives, options] и позволяют строить в пространстве различные простые фигуры. Помимо примитивов двумерной графики могут использоваться примитивы трехмерной графики, приведенные в приложении.

Функция Graphics3D со своими примитивами может использоваться для построения в пространстве различных объектов, например точек, кубиков или многоугольников.

Рисунок 2.21. показывает два варианта размещения случайных точек в пространстве. Для генерации координат точек используется функция Random [ ], возвращающая случайные числа, распределенные по равномерному закону.

 
Рис. 2.21. Построение случайных точек в пространстве

Поскольку ограничительный "ящик" не удален, создается впечатление  о построении точек внутри куба.

На рис.2.22. показано построение в пространстве ряда небольших кубиков. Для этого используется примитив Cuboid, повторенный 7 раз. Для воспроизведения набора кубиков, перечисленных

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

 
Рис. 2.23. Построение нескольких кубиков в пространстве

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

Информация о работе Графический пакет системы Mathematica