Автор работы: Пользователь скрыл имя, 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
Список литературы……………………………………………………………
Функция двух переменных z = f(x, у) образует
в пространстве некоторую трехмерную
поверхность или фигуру. Для их
построения приходится использовать координатную
систему с тремя осями
Вместо построения всех точек фигуры
обычно строится ее каркасная модель,
содержащая линии разреза фигуры
по взаимно перпендикулярным плоскостям.
В результате фигура представляется
в виде совокупности множества криволинейных
четырехугольников. Для придания фигуре
большей естественности используются
алгоритм удаления невидимых линий
каркаса и функциональная закраска
четырехугольников с целью
Для построения графиков трехмерных поверхностей используется основная графическая функция Plot 3D:
На рис.2.4. показан пример построения поверхности, описываемой функцией двух переменных cos(x у) при х и у, меняющихся от -3 до 3. Поверхность строится в виде каркаса с прямоугольными ячейками с использованием функциональной окраски. Все опции заданы по умолчанию.
Этот график будем считать исходным для демонстрации его модификаций, получаемых путем изменения опций.
Для модификации трехмерных графиков
могут использоваться многочисленные
опции и директивы, список которых
дан в приложении. Их применение
позволяет строить большое
На рис.2.5. показана исходная поверхность (рис. 2.4.), построенная с применением опции PlotPoint → 50. Это означает, что поверхность по каждой оси делится на 50 частей (в исходном графике по умолчанию используется деление на 10 частей). Масштаб по вертикали задается автоматически, с тем чтобы все высоты поверхности не ограничивались.
На рис. 2.5. показана та же поверхность, полученная с применением опции PlotRange → {0, 0.5}, срезающей верхнюю часть поверхности (точки с ординатами выше 0.5). График поверхности при этом существенно меняется .
Опция Boxed → False удаляет ограничивающие рамки, образующие "ящик", в который вписывается построенная трехмерная поверхность (рис. 2.7.). Остаются лишь координатные оси.
Опция Viewpoint позволяет включить при построении отображение перспективы и изменять углы, под которыми рассматривается фигура. Рисунок 2.8.иллюстрирует применение этой опции.
Опция Mesh → False позволяет удалить линии каркаса фигуры. Нередко это придает фигуре более естественный вид (рис.2.9.) – обычно мы наблюдаем такие фигуры без линий каркаса.
В ряде случаев, напротив, именно линии каркаса несут важную информацию. Система строит каркас трехмерных поверхностей двумя способами – с использованием и без использования алгоритма удаления невидимых линий. Рисунок 2.10. показывает результат построения при использовании алгоритма удаления невидимых линий. Нетрудно заметить, что в этом случае поверхность выглядит достаточно эстетично даже без применения функциональной закраски.
На рис2.11. показано построение каркаса без удаления невидимых линий. Такой вид математическая поверхность имеет, если представить ее построенной из тонких проволочек, висящих в пространстве. Это дает дополнительную информацию о пространственной фигуре, но эстетически она выглядит хуже, чем фигура, построенная с применением алгоритма удаления невидимых линий каркаса.
Таким образом, как и ранее, применение
опций позволяет легко
Приведенные примеры самым наглядным образом показывают, насколько легко модифицируются графики с помощью различных опций. Разумеется, есть множество возможностей для иных модификаций, которые пользователь может опробовать самостоятельно.
В разделе приложения, посвященном данному уроку, указан ряд дополнительных директив и опций трехмерной графики. С их помощью можно расширить возможности построения графиков. Читателю рекомендуется самостоятельно построить графики ряда поверхностей с использованием различных опций.
Часто трехмерная поверхность задается массивом своих высот (аппликат). Для построения графика в этом случае используется графическая функция ListPlot3D:
Plot Joined – дополнительная опция для ListPlot, указывающая, следует ли соединять линией точки, нанесенные на график.
Пример применения функции ListPlot3D показан на рис.2.13. График построен по данным таблицы tS, формирующей значения аппликат поверхности, которая описывается функцией cos(xy).
Командой Options [ListPlot3D] можно вывести полный список опций данной функции, чтобы использовать их для модификации графиков, которые строит эта функция.
Системы Mathematica содержат множество средств, повышающих наглядность представления (визуализации) результатов вычислений – как простых, так и сложных. К ним можно отнести особые виды трехмерной графики, используемые при параметрическом задании поверхностей, в том числе пересекающихся в пространстве, а также графики объемных фигур – полиэдров. Возможности визуализации расширяются при использовании импортируемых рисунков и вставки графических объектов
Особый
шик построениям трехмерных фигур
и поверхностей придает функция ParametricPlot
Функция ParametricPlot3D используется в следующих видах:
Эта функция
имеет множество опций, которые
можно вывести с помощью
Параметрическое задание функций
позволяет легко строить
Первым примером может служить фигура "рог изобилия", показанная на рис. 2.15. По существу, это раскручивающаяся объемная спираль, диаметр которой постепенно нарастает.
Другой пример – объемное кольцо с сечением, напоминающим знак бесконечности (бесконечность). Результат построения показан на рис. 2.16. Обратите внимание на интересный эффект – из кольца удален сектор, что позволяет рассмотреть его внутреннее строение. Все, что потребовалось для создания этого эффекта, – это задать верхний предел изменения переменной t равным 2π – 0.6. Если сделать этот предел равным 2π, то кольцо станет непрерывным.
Третий пример такого рода – построение объемной сферы. Этот пример показан на рис.2.17. Здесь также использован прием изменения значений переменной t для получения выреза сегмента сферы. Опять-таки, задав изменение t от 0 до 2π, можно получить построение всей сферы без выреза.
Любопытно отметить, что описанные приемы создания вырезов в объемных фигурах позволяют наблюдать внутреннюю часть фигур, которая обычно (без вырезов) не видна. Это делает описанный прием построения фигур с вырезом достаточно продуктивным.
Пожалуй, наиболее впечатляющими являются построения трехмерных фигур, пересекающихся в пространстве. Для этого достаточно представить каждую фигуру в виде графического объекта, а затем с помощью директивы Show вывести их на одном графике. При этом Mathematica автоматически рассчитывает линии пересечения фигур и строит график так, чтобы заслоненные ячейки фигур не были видны.
Проиллюстрируем это на примере. На рис.2.18. показано задание и построение одного графического объекта gl – объемной спирали, полученной сворачиванием ленты.
Второй объект, построение которого представлено на рис.2.19., – это объемное кольцо. Его построение было описано выше. В конце части документа, показанного на рис. 2.19, задана функция Show для вывода объектов на одном графике.
Рисунок 2.20. демонстрирует комбинированный график, построенный функцией Show. Он показывает кольцо, через отверстие которого проходит объемная спираль. Вырез в кольце показывает, как спираль проходит внутри кольца.
Графики такого типа дают большие возможности визуализации трехмерных поверхностей и фигур.
Наряду с построением графиков поверхностей, заданных аналитическими выражениями, имеется возможность создания графиков из различных элементарных геометрических объектов, называемых примитивами. Они включаются в список параметров функции Graphics3D [primitives, options] и позволяют строить в пространстве различные простые фигуры. Помимо примитивов двумерной графики могут использоваться примитивы трехмерной графики, приведенные в приложении.
Функция Graphics3D со своими примитивами может использоваться для построения в пространстве различных объектов, например точек, кубиков или многоугольников.
Рисунок 2.21. показывает два варианта размещения случайных точек в пространстве. Для генерации координат точек используется функция Random [ ], возвращающая случайные числа, распределенные по равномерному закону.
Поскольку ограничительный "ящик" не удален, создается впечатление о построении точек внутри куба.
На рис.2.22. показано построение в пространстве ряда небольших кубиков. Для этого используется примитив Cuboid, повторенный 7 раз. Для воспроизведения набора кубиков, перечисленных
Нетрудно заметить, что и здесь неплохо работают встроенные алгоритмы удаления невидимых линий. Это дает довольно реалистическое изображение объектов в пространстве.
Еще более наглядное представление об этом алгоритме дает рис. 2.24. На нем показано построение в пространстве ряда плоских многоугольников, частично проникающих друг в друга. Нетрудно заметить, что и здесь алгоритм удаления невидимых поверхностей работает превосходно.