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

GOS

.docx
Скачиваний:
10
Добавлен:
10.05.2015
Размер:
596.44 Кб
Скачать

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

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

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

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

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

Для простейшего сплайна — ломаной — этого условия вполне достаточно. Два коэффициента прямой однозначно определяются из двух уравнений. Такой сплайн является локальным. Для полиномов высших степеней мы должны добавить дополнительные условия таким образом, чтобы общее число уравнений было равно числу коэффициентов полинома. Так, для сплайна 3-й степени таким условием является равенство 1-й производной на концах отрезка некоторому значению, которое определяется для соседних участков одинаковым образом (в формулах (2) через значение производной функции, которой приближают).

Система из 4-х уравнений

позволяет однозначно определить 4 коэффициента полинома. Для полинома 5-й степени мы должны дополнительно наложить условие равенства 2-й производной на концах отрезка и т. д. Приведенное выше показывает, почему сплайны строят преимущественно из полиномов нечётных степеней (с чётным количеством коэффициентов).

Для полиномов четных степеней при сборке системы (3) остается неопределенной производная в одном из концов отрезка, и условие равенства производных (гладкости кривой) не будет выполняться. Поэтому для полинома 2-й степени невозможно достичь равенства первой производной в точках стыка, а для 4-й степени — второй производной и т. д., исходя из системы уравнений (3). Для построения сплайнов с четными степенями искусственно добавляют дополнительные условия чтобы сформировать систему уравнений, подобную (3). Когда производные полинома сплайна определяются как соответствующие производные интерполируемой функции, то сплайн является эрмитовым.

Существуют локальные методы построения сплайнов Бесселя и Акими, B — сплайны []. В основном, когда речь идет о сплайнах, то имеют в виду сплайны, построенные из алгебраических полиномов. Именно к ним относится приведенное выше определение. Именно эти сплайны являются наиболее изученными. Однако сплайн может состоять из фрагментов функций любого класса. В [] рассмотрено построение таких сплайнов и исследуются их свойства. Автор не дает общего определения построенных сплайнов. Очевидно, что для любых классов функций, из которых состоит сплайн, приведенное в начале статьи определение не совсем подходит. Если, например, сплайн состоит из отрезков экспоненты, то понятие дефекта сплайна теряет смысл. Хотя количество непрерывных производных останется важной характеристикой. Построение сплайна, фрагментами которого являются разрывные функции (рациональные функции, функции Паде), несколько выходит за рамки сплайновой идеи, поскольку одним из основных преимуществ сплайнов является их гладкость. Если произвольно расширять такие конструкции, то стираются различия сплайнов от кусковых функций. Другим преимуществом сплайнов является эффективность вычислений. Чрезмерное усложнение фрагментов существенно снижает преимущество сплайнов перед классическими функциями.

Для сплайнов характерны следующие признаки: сплайн состоит из фрагментов — функций одного класса, которые отличаются только своими параметрами, на соседние фрагменты в точках стыковки накладываются определенные условия, которые сводятся к непрерывности значений и некоторых первых производных. Сплайны — направление прикладной математики, которое интенсивно развивается. В Интернете содержится обширная библиография по сплайнам (Spline Bibliography Database (SBD)) .

[править]Классификация сплайнов

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

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

Самые известные сплайны — состоящие из фрагментов — алгебраических полиномов не выше заданной степени. Как правило, это кубические полиномы, или полиномы нечётных степеней: первой, третьей (кубический), пятой степени. Более высокие степени применяют редко из-за усложнения расчетов и сложностей, описанных в предыдущем разделе. Основным их преимуществом является простота расчетов и анализа. Недостатком является то, что относительно мало реальных физических процессов соответствуют этой зависимости.

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

Тригонометрическими являются сплайны, фрагменты которых описываются тригонометрическими полиномами. Имеют достаточно сложные расчетные выражения. Более пятидесяти различных по виду фрагментов сплайнов описаны в работах Б. А. Попова.

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

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

Число фрагментов. Очевидно, что минимальное число фрагментов — один. Классическое определение сплайна ограничивает число фрагментов определенным числом на конечном отрезке. Однако можно строить сплайны и с бесконечным числом фрагментов, а реально эти методы и алгоритмы, которые не нуждаются в информации об определенном количестве фрагментов. Представителями этих сплайнов являются кардинальные сплайны, исследованные Шенбергом. Для построения сплайнов с неограниченным числом фрагментов лучше подходят локальные сплайны.

Ширина фрагментов. Следует выделить сплайны с равной шириной фрагментов. Это позволяет значительно упростить расчетные выражения, ускорить работу алгоритмов и снизить затраты на реализацию. Определенного упрощения можно достичь за счёт применения фрагментов с кратной шириной. Существуют сплайны с нулевой шириной фрагментов (Де Бур). Это приводит к кратности узлов и возможности приближать сплайны с неразрывными фрагментами разрывных функций. Расчетные выражения получают в результате предельных переходов. Сплайны могут иметь также фрагменты с бесконечной шириной. Эти фрагменты должны быть крайними. Иногда это позволяет естественно задать краевые условия.

Условия стыковки фрагментов. Еще один важный признак, что отличает сплайны. Когда идет речь о сплайнах, как правило, считают, что фрагменты стыкуются гладко. То есть обеспечивается непрерывность значений и первой производной. Понятие дефекта сплайна связано с числом непрерывных производных, которые имеет функция-фрагмент определенного вида и числом производных, непрерывность которых гарантирована в узлах. Экспонента, синусоида имеют бесконечное число производных. Для них это понятие не имеет смысла. Поэтому удобнее говорить прямо о числе производных, непрерывность которых гарантирована в узлах сплайна. Практически речь идет о непрерывности значений и первой, максимум второй производной. Разрыв второй и высших производных визуально не заметно, поэтому учитывается редко. Понятно, что первая производная в точках стыка может задаваться по-разному. Наиболее распространены два приёма. Значение первой производной выбирается так, чтобы обеспечить непрерывность второй (глобальные кубические сплайны минимального дефекта). Первая производная равняется первой производной интерполируемой функции (возможно приближенно) в эрмитовых сплайнах.

Краевые условия. Если сплайны имеют ограниченное число фрагментов, то, естественно, у них отсутствуют крайние фрагменты слева и справа, поэтому крайние узлы не с чем стыковать. Исключением являются лишь периодические сплайны, которые имеют естественное продолжение. Иногда естественными называют краевые условия с нулевой производной, хотя никаких оснований считать их более естественными, чем другие, нет. Если сплайн имеет фрагменты одинаковой ширины, считают недостающие фрагменты той же ширины. Другой вариант — это считать недостающие фрагменты продлёнными в бесконечность. Преимущество такого подхода в возможности экстраполяции. Можно считать ширину фрагментов нулевой. Расчетные выражения получают предельными переходами. Если взглянуть на краевые условия с точки зрения формирования сплайна из базисных функций, то они сводятся к продолжению соответствующих локальных базисных функций. Ширина соседних фрагментов влияет на их форму. А простое обрезание часто приводит к осцилляции и росту погрешности на краях. Важное значение краевые условия имеют при обработке изображений и в задачах с экстраполяцией.

Дополнительные ограничения. Они чаще всего касаются производных в узлах. Иногда они вытекают из физики процесса. Условия: неотъемлемость значений, равенство моментов, площадей, условия нормирования. Дополнительные условия иногда упрощают анализ свойств сплайнов, но могут серьезно затруднять построение и затраты реализации.

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

Локальные свойства базисных функций. Сплайн можно представить как сумму взвешенных базисных сплайнов. Существенным является ширина этих базисных функций. Так, в глобальных сплайнах базисные сплайны ненулевые на всём отрезке интерполяции. Хотя стоит заметить, что с определенной точностью (достаточной для многих технических расчетов) их можно считать локальными. У локальных сплайнов ширина базисных функций невелика (четыре фрагмента у кубических эрмитовых сплайнов). Это существенно влияет на эффективность расчетов и затраты реализации.

Форма представления. Функции, задающие фрагменты сплайна, как правило, зависят от множества параметров, благодаря которым они меняют свою форму. Значения параметров на каждом из фрагментов индивидуальны. Эти параметры могут задавать конкретный сплайн. Для полиномиальных сплайнов это полиномиальные коэффициенты. Так, сплайн можно представить множеством параметров функций на каждом из фрагментов. Назовем это представление пофрагментным. Такое представление является наглядным, часто имеет явный физический смысл. Но число параметров является чрезмерным. Так, для кубического сплайна необходимо иметь 4 * (r-1) параметров (r — число узлов сплайна). Значительно более компактным является представление сплайна в виде полинома, через базисные сплайн-функции в виде:

,

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

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

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

Кубический эрмитов сплайн — сплайн, построенный из кубических полиномов с использованием эрмитовой интерполяции, в соответствии с которой интерполируемая функция задается не только своими значениями в n точках, но и ее первыми производными. Для заданной интерполяционной сетки  для , и заданного значения независимой переменной x вычисление функции проводится в соответствующем интервале  с известными граничными значениями функции p и ее производной m.Для упрощения вычислений делается замена независимой переменной x на независимую переменную t по формуле .В результате такой замены левая граница интервала становится равной 0, а правая 1. Кубический полином, служащий для вычисления интерполируемой функции в соответствующем интервале имеет вид:

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

В так называемом кардинальном сплайне используется формула

В этой формуле параметр c изменяется от 0 до 1. В соответствии с этой формулой производная в середине отрезка равняется разделенной первой разностью на всем отрезке, умноженной на некий коеффициент. В случае с=0 формула называется Catmull–Rom сплайн.

Кривы́е Безье́ или Кривы́е Бернште́йна-Безье́ были разработаны в 60-х годах XX века независимо друг от друга Пьером Безье (Pierre Bézier) из автомобилестроительной компании «Рено» и Полем де Кастельжо (Paul de Faget de Casteljau) из компании «Ситроен», где применялись для проектирования кузовов автомобилей.

Несмотря на то, что открытие де Кастельжо было сделано несколько ранее Безье (1959), его исследования не публиковались и скрывались компанией какпроизводственная тайна до конца 1960-х.

Кривая Безье является частным случаем многочленов Бернштейна, описанных Сергеем Натановичем Бернштейном в 1912 году.

Впервые кривые были представлены широкой публике в 1962 году французским инженером Пьером Безье, который, разработав их независимо от де Кастельжо, использовал их для компьютерного проектирования автомобильных кузовов. Кривые были названы именем Безье, а именем де Кастельжо назван разработанный им рекурсивный способ определения кривых (алгоритм де Кастельжо).

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

Кривая Безье — параметрическая кривая, задаваемая выражением

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

,

где  — число сочетаний из  по , где  — степень полинома,  — порядковый номер опорной вершины.

[править]Виды кривых Безье

[править]Линейные кривые

При n = 1 кривая представляет собой отрезок прямой линии, опорные точки P0 и P1 определяют его начало и конец. Кривая задаётся уравнением:

.

[править]Квадратичные кривые

Квадратичная кривая Безье (n = 2) задаётся 3-мя опорными точками: P0, P1 и P2.

.

Квадратичные кривые Безье в составе сплайнов используются для описания формы символов в шрифтах TrueType и в SWF файлах (в SWF также могут использоваться кубические кривые Безье).

[править]Кубические кривые

В параметрической форме кубическая кривая Безье (n = 3) описывается следующим уравнением:

.

Кубическая кривая Безье

Четыре опорные точки P0, P1, P2 и P3, заданные в 2-х или 3-мерном пространстве определяют форму кривой.

Линия берёт начало из точки P0 направляясь к P1 и заканчивается в точке P3 подходя к ней со стороны P2. То есть кривая не проходит через точки P1 и P2, они используются для указания её направления. Длина отрезка между P0 иP1 определяет, как скоро кривая повернёт к P3.

В матричной форме кубическая кривая Безье записывается следующим образом:

,

где  называется базисной матрицей Безье:

В современных графических системах и форматах, таких как PostScript (а также основанные на нём форматы Adobe Illustrator и Portable Document Format (PDF)), Scalable Vector Graphics (SVG), Metafont, CorelDraw и GIMP для представления криволинейных форм используются сплайны Безье, составленные из кубических кривых. SVG также позволяет работать со сплайнами Безье 4-й степени[1].

[править]Построение кривых Безье

[править]Линейные кривые

Параметр t в функции, описывающей линейный случай кривой Безье, определяет где именно на расстоянии от P0 до P1 находится B(t). Например, при t = 0,25 значение функции B(t) соответствует четверти расстояния между точками P0 и P1. Параметр t изменяется от 0 до 1, а B(t) описывает отрезок прямой между точками P0 и P1.

[править]Квадратичные кривые

Для построения квадратичных кривых Безье требуется выделение двух промежуточных точек Q0 и Q1 из условия чтобы параметр t изменялся от 0 до 1:

Точка Q0 изменяется от P0 до P1 и описывает линейную кривую Безье.

Точка Q1 изменяется от P1 до P2 и также описывает линейную кривую Безье.

Точка B изменяется от Q0 до Q1 и описывает квадратичную кривую Безье.

Построение квадратичной кривой Безье

Анимация t: [0; 1]

[править]Кривые высших степеней

Для построения кривых высших порядков соответственно требуется и больше промежуточных точек. Для кубической кривой это промежуточные точки Q0, Q1 и Q2, описывающие линейные кривые, а также точки R0 и R1, которые описывают квадратичные кривые: более простое уравнение p0q0/p0q1=q1p1/p1p2=bq0/q1q0

Построение кубической кривой Безье

Анимация t: [0; 1]

Для кривых четвёртой степени это будут точки Q0, Q1, Q2 и Q3, описывающие линейные кривые, R0, R1 и R2, которые описывают квадратичные кривые, а также точки S0и S1, описывающие кубические кривые Безье:

Построение кривой Безье 4-й степени

Анимация t: [0; 1]

[править]Свойства кривой Безье

непрерывность заполнения сегмента между начальной и конечной точками;

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

при наличии только двух контрольных точек сегмент представляет собой прямую линию;

прямая линия образуется при коллинеарном (на одной прямой) размещении управляющих точек;

кривая Безье симметрична, то есть обмен местами между начальной и конечной точками (изменение направления траектории) не влияет на форму кривой;

масштабирование и изменение пропорций кривой Безье не нарушает ее стабильности, так как она с математической точки зрения «аффинно инвариантна»;

изменение координат хотя бы одной из точек ведет к изменению формы всей кривой Безье;

любой частичный отрезок кривой Безье также является кривой Безье;

степень кривой всегда на одну ступень ниже числа контрольных точек. Например, при трех контрольных точках форма кривой — парабола;

окружность не может быть описана параметрическим уравнением кривой Безье;

невозможно создать параллельные кривые Безье, за исключением тривиальных случаев (прямые линии и совпадающие кривые), хотя существуют алгоритмы, строящие приближённую параллельную кривую Безье с приемлемой для практики точностью.

[править]Применение в компьютерной графике

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

Наибольшее значение имеют кривые Безье второй и третьей степеней (квадратичные и кубические). Кривые высших степеней при обработке требуют большего объёма вычислений и для практических целей используются реже. Для построения сложных по форме линий отдельные кривые Безье могут быть последовательно соединены друг с другом в сплайн Безье. Для того, чтобы обеспечить гладкость линии в месте соединения двух кривых, три смежные опорные точки обеих кривых должны лежать на одной прямой. В программах векторной графики наподобие Adobe Illustrator или Inkscape подобные фрагменты известны под названием «путей» (path).

[править]Преобразование квадратичных кривых Безье в кубические

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]