дипломы,курсовые,рефераты,контрольные,диссертации на заказ

Компьютерная математика Mathematica электронный учебник Оглавление

 

Примитивы, использующие сплайны — Spline

 

Подпакет Spline вместе с уже описанным подпакетом NumericalMath'SplineFit' (сплайновая регрессия) обеспечивает представление данных с помощью сплайна. В подпакете Spline определена единственная функция Spline [points, type], которая создает графический примитив, представляющий сплайн-кривую типа type (Cubic, Bezier или CompoziteBezier — см. описание подпакета NumericalMath'SplineFit').

Среди ее опций важно отметить следующие (как и ранее, приведены значения, используемые по умолчанию): SplineDots->None, SplinePoints->25, Max-Bend->10.0 и SplineDivision->20.0.

Рисунок 14.85 показывает задание массива из пяти точек на плоскости и соединение их отрезками прямых и кубическими сплайн-функциями. Хорошо видна аналогия сплайна с гибкой линейкой.

Сплайн-функции в данном случае применяются в порядке задания точек в списке pts. В этом случае возможно создание замкнутых линий (рис. 14.85 является наглядным примером этого).

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

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

[an error occurred while processing this directive]

Рис. 14.85. Пример интерполяции пяти точек отрезками прямой и сплайнами

Рис. 14.86. Пример срыва сплайн-интерполяции точек

Рис. 14.87. Построение исходных точек и проходящей через них сплайн-функции

 

Создание поверхностей вращения — SurfaceOfRevolution

Одна из задач компьютерной графики — создание поверхностей вращения. Средства для этого дает подпакет SurfaceOfRevolution. Они представлены следующими функциями:

Рисунок 14.88 дает простой пример построения поверхности, образованной линией cos(x) при изменении х от 0 до 4л, вращающейся вокруг оси xz. Построение задано функцией SurfaceOfRevolution [f, {x, xmin, xmax} ]. В этом случае линия вращается в пределах угла от 0 до 2-я, поэтому поверхность получается круговой.

[an error occurred while processing this directive]

Рис. 14.88. Фигура, образованная вращением линии cos(x)

Следующий пример показывает ту же фигуру (рис. 14.89) в другом положении. Это достигается сменой угла обзора с помощью опции viewVertical.

Рис. 14.89. Фигура рис. 14.88 в другом положении

Пример применения функции SurfaceOfRevolutibn [ {fx, fy}, {t, tmin, tmax) ] представлен на рис. 14.90. Формируется этакое декоративное яйцо на подставке. Заменив в определении функции Cos [u] на Sin [u], можно получить изображение рюмки.

[an error occurred while processing this directive]

Рис. 14.90. Построение декоративного яйца на подставке

Рисунок 14.91 демонстрирует возможность построения объемной фигуры с вырезами. Все, что для этого надо, — удачно выбрать диапазон изменения угла вращения. Если он будет от 0 до 2л, то фигура будет сплошной, не содержащей вырезов.

Рис. 14.91. Построение яйца с вырезом

Для управления положением оси вращения служат следующие опции:

Рисунок 14.92 иллюстрирует применение опции RevolutionAxis->{x, у, z }.

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

Рисунок 14.93 показывает задание массива точек с помощью функции Table и фигуру вращения, полученную при использовании функции ListSurfaceOf-Revolution во второй форме.

Рис. 14.92. Управление положением оси вращения

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

 

Что еще есть в пакете расширения Graphics

Помимо уже рассмотренных подпакетов пакет расширения Graphics содержит подпакеты ThreeScript и Common. Подпакет ThreeScript содержит функцию преобразования трехмерных графических объектов в программный код формата 3-Script, например:

<<Graphics 'ThreeScript'

obj = Graphics3D[Polygon[0,0,0, 0,1,0, 0,1,1]]

• GraphicsSD •

ThreeScript[ "object.ts", obj]

object.ts

!!object.ts

% Graphics3D objects

boundingbox

0 0 0

0 1 1

viewpoint

1.3 -2.399999999999999 2.

ambientlight

000

lightsources

1. 0. 1.

1 0 0

1. 1. 1.

0 1 0

0. 1. 1.

0 0 1

polygon

0 0 0

0 1 0

0 1 1

Подпакет Common содержит просто перечень системных символов (точнее, слов), которые приняты во всех подпакетах пакета Graphics. Вот этот список: Horizontal, MaxArrowLength, ScaleFactor, ScaleFunction и Vertical.

 

Что нового мы узнали?

В этом уроке мы научились:

 

Аналитическая геометрия плоскости и поверхности Курс лекций Векторная алгебра. Электронные учебники - MATLAB Компьютерная математика Maple Лекции первого семестра первого курса Дифференциальное исчисление функции Дифференциальные уравнения первого порядка Теория вероятностей. Основные понятия Математический анализ Двойной интеграл Геометрический смысл производной Числовые ряды Степенные ряды Аналитическая геометрия Функции графики задачи Курс лекций Примеры задачи Интегрирование и дифференцирование матрицы ;