- •1) Преобразование для точек и прямых.
- •2) Вращение, отображение, изменение масштаба, произвольная матрица вращения. Композиция преобразований. Вращение
- •Отображение
- •Изменение масштаба
- •Композиция преобразований на плоскости
- •3) Двумерное смещение и однородные координаты. Точки в бесконечности. Двумерное смещение и однородные координаты
- •Точки в бесконечности
- •4) Трехмерные преобразования и проекции.
- •Аксонометрические проекции
- •5) Аффинная и перспективная геометрия.
- •Восстановление трехмерной информации
- •6)Математическое описание плоских кривых.
- •7) Представление пространственных кривых.
- •8) Кубические сплайны. Кривые Безье. В-сплайны.
- •9) Сферические поверхности. Билинейные поверхности. Линейчатые поверхности.
- •10) Линейные поверхности Кунса.
7) Представление пространственных кривых.
Пространственные кривые могут быть представлены непараметрически и параметрически.
Непараметрическое явное задание:
Непараметрическое неявное задание - кривая на пересечении двух поверхностей:
Параметрическое задание:
Многие кривые имеют известное и хорошо изученное аналитическое описание.
Простейший пример - цилиндрическая спираль:
-
радиус,
-
шаг спирали.
Очень часто аналитическое описание неизвестно. В этом случае ставится задача проведения кривой через ряд заданных точек, или проведения кривой, имеющей более сложную зависимость от заданных точек (например, некоторые точки определяют наклон) т. д.
8) Кубические сплайны. Кривые Безье. В-сплайны.
Физически сплайны можно представить в виде узкой деревянной рейки, лежащей концами на точках опоры, кривизны которой реализуется с помощью свинцовых грузов.
Математически сплайн описывается полиномом - той степени. Чаще всего используют полиномы третьей степени - кубические сплайны. Конкретный вид кубического сплайна определяется координатами точек, через которые его надо провести (концевых точек) и наклоном в этих точках.
Если
требуется провести гладкую кривую
между
точками, то используется совокупность
сплайнов - так называемые сплайновые
сегменты. При этом предъявляется
требование непрерывности второго
порядка в местах соединений.
Уравнение единственного кубического сплайнового сегмента в параметрической форме выглядит следующим образом:
где
-вектор
положения произвольной
точки на сплайне.
Коэфициенты
определяются координатами концов
сегмента
и
и касательными векторами на концах
и
,
которые являются произвольными по
параметру
.
Внутри
сплайнового сегмента параметр
меняется от
до
(
соответствует
).
Обычно
полагают
.
Тогда
Отсюда получим
Окончательно
имеем
Отсюда уравнение одного кубического сплайнового сегмента:
Обобщение
этого уравнения для любых двух
смежных сегментов
и
,
где
имеет вид
При этом важно, что в уравнении
Кривая
в этом случае определяется тремя
точками
и
касательными на концах, то есть
и
.
Касательная в точках
-
определяется из условия непрерывности
второго порядка - постоянства кривизны
в точке соединения
Вторая
производная
при
в конце первого сегмента.
а
в начале второго
(
это коэффициенты двух разных сплайновых
сегментов ) .
Приравняем
в этих точках, подставим
и
После
преобразований ( умножения на
и группировки членов ) получим
В этом уравнении только одно неизвестное - , то есть касательная в точке соединения.
При
проведении кривой через n
точек касательные во всех точках
соединения -
- определяются из следующего матричного
уравнения:
Это
произведение матрицы размера
на матрицу
.
Результатом
является матрица
.
Система обычных уравнений, получающихся из этого матричного уравнения, будет определена, если известны, то есть касательные на концах кривой.
Решение этой системы даст значения касательных в точках соединения, после
чего могут быть получены коэффициенты всех сплайновых сегментов.
Для
окончательного решения задачи
построения сплайн – кривой нам остается
выбрать пределы изменения параметра
в каждом сегменте. Поскольку все
полученные формулы предполагают, что
начало каждого сегмента, соответствует
,
то необходимо определить лишь значения
.
Выбор этих величин будет влиять на
гладкость сплайна.
Обычно
эту задачу решают не из строгих
соображений (например, обеспечение
минимума кривизны вдоль всей кривой)
- это довольно сложно. На практике
приемлемыми являются простейшие методы
выбора
.
Можно,
например, использовать так называемые
нормализованные параметры, то есть
считать, что на всех участках
.
Тогда матричное уравнение для определения касательных в точках соединения будет иметь вид:
а с учетом того, что и должны быть заданы:
Коэффициенты для каждого сегмента вычисляются из следующего уравнения:
Такой метод удобен в вычислительном отношении, так как трехдиагональную матрицу
из
уравнения для
приходится обращать только один раз.
На практике он дает хорощие результаты,
если точки
расположены достаточно равномерно.
При неравномерном распределении точек в качестве t обычно выбирают расстояние между и - метод локальных хорд. Кубические сплайновые кривые широко распространены, однако имеют ряд недостатков. Например, с их помощью нельзя точно передать дугу окружности, а только приближенно.
Кривые Безье
Более удобный способ построения кривых предложил Безье. Кривая Безье определяется несколькими точками, – так называемыми вершинами многоугольника. При этом кривой принадлежат лишь первая и последняя точки, а остальные задают ее форму.
Так как вид кривой зависит то формы многоугольника, то изменение положения вершин создает пользователя значительно более ясное интуитивное ощущение восприятия связи между вершинами, задаваемыми в диалоговом режиме, и требуемой формой.
Кроме того, если сплайн – кривые имеют фиксированный порядок (мы рассмотрели. Порядок равный трем – кубические сплайны), то в методе Безье порядок любого криволинейного сегмента может быть увеличен путем задания дополнительных вершин.
Математически кривая Безье описывается полиномиальной функцией, построенной в так называемом базисе Бернштейна. Базисная функция в нем задается соотношением
,
где
Здесь
- степень полинома;
– порядковый номер отдельной вершины.
Точки кривой в базисе Бернштейна задаются как
,
то
есть
-
й порядок полинома характеризуется
–
й вершиной.
В начальной точке
В
конечной точке
То
есть
и
, вершины
и
действительно являются началом и
концом криволинейного сегмента.
В
зависимости от положения точек
могут получаться различные кривые:
При сопряжении двух сегментов требуется выполнить условия непрерывности в общем случае k – го порядка, то есть равенства k – й производной кривой первого сегмента в конечной точке и k – й производной второго сегмента в начальной точке.
Рассмотрим условие непрерывности первого порядка.
Выражение
для
удобно найти, явно расписав сумму
для
:
Тогда
В точках и получим
;
;
Пусть
одна кривая Безье определена точками
,
а другая точками
. Непрерывность первого порядка имеет
место, если
,
где
- скаляр
Имеем
Раз
кривые сопрягаются, то
Таким
образом, для обеспечения непрерывности
первого порядка требуется, чтобы
конечный отрезок первого многоугольника
и начальный отрезок второго лежали
на одной прямой (или точки
- на одной прямой).
Рисунок 5.8
Еще одним методом построения гладкой кривой между двумя точками (концами), форма отдельных участков которой определяется промежуточными точками, является метод В сплайнов. Вначале определим понятие В – сплайна. Произвольная точка кривой ,
то есть ее вектор положения, задается в В- сплайн базисе следующим образом:
Здесь
-вершины характеристического
многоугольника,
;
– базисные
функции;
-
порядок кривой;
–
параметр,
изменяющийся в диапазоне от 0 до
В
отличие от метода кривых Безье, где
в методе В-
сплайнов величина
и определяется порядком кривой, а
также наличием так называемых кратных
вершин, которые мы рассмотрим чуть
ниже.
Для
определения базисных функций
введем понятие узлового вектора.
Узловой
вектор или вектор параметрических
узлов представляет собой последовательность
целых положительных чисел
в
которой
.
Примерами узлового вектора является
или
и
т. д. Значения
рассматриваются как параметрические
узлы, характеризующие различные
интервалы изменения параметра
.Размерность
узлового вектора и конкретные значения
узлов зависят от числа вершин
задающего многоугольника, то есть от
,
порядка кривой
и сложности вершин.
Сложная
( или кратная) вершина это две или
более вершины с одинаковыми координатами.
В узловом векторе сложным вершинам
соответствует последовательность
одинаковых по величине компонент
,где
– кратность вершины.
Алгоритм формирования узлового вектора следующий. Входными парметрами являются:
массив вершин задающего многоугольника, в котором - кратная вершина представлена как - простых вершин с совпадающими координатами - массив
;
– число вершин без l;
– порядок кривой.
На
выходе формируется вектор
.
Размерность
вектора
определяется как
,
то есть
1)
Для
;
2)
Для
,
если
,
то
если
,
то
3)
Для
Например,
если задающий многоугольник содержит
пять вершин, то есть
,
порядок кривой
и отсутствуют сложные вершины, то
если
,
то
;
если
одна из вершин, например
,
двойная, то есть массив вершин включает
или
где
,
то есть
и
,
то
;
если
то
.
Отметим одно общее правило: начальные и конечные вершины условно считываются - кратными, однако, в отличии от кратных промежуточных вершин, это не приводит увеличению , а лишь отражается в узловом векторе.
Теперь
определим базисные функции
.
Они задаются рекуррентным соотношением
Отсюда
видно, что если порядок кривой равен
,
то функция
,
соответствующая i- вершине , не равна нулю только на промежутке
то
есть каждая вершина
имеет ограниченное ( локальное ) влияние
на форму кривой.
Метод В- сплайнов позволяет изменить форму кривых и добиваться нужной формы различными способами - изменяя количеством положение вершин, их сложность, порядок кривой и так далее. Если порядок кривой равен числу вершин и отсутствуют сложные вершины, то В- сплайн кривая совпадает с кривой Безье; с уменьшением порядка форма кривой приближается к форме описывающего ее многоугольника.
При кривая полностью совпадает с многоугольником.
многоугольником.
