Пред.
След.
Макеты страниц
Распознанный текст, спецсимволы и формулы могут содержать ошибки, поэтому с корректным вариантом рекомендуем ознакомиться на отсканированных изображениях учебника выше Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике 5-8 КРИВЫЕ БЕЗЬЕДо сих пор мы обсуждали, как провести кривую через заданное множество точек. Рассмотренные методы во многих случаях дают прекрасные результаты и особенно удобны при описании формы, основа которой получена с помощью экспериментов или математических расчетов. Это, например, крыло самолета, составные части мотора, механические и структурные детали. Существует, однако, и другой класс задач, когда решение зависит как от функциональных, так и от эстетических требований, например дизайн поверхности машины, фюзеляжа самолета, формы корабля, мебели или посуды. Кроме количественных критериев здесь требуется учет практического опыта, и часто необходимо интерактивное вмешательство разработчика.
Рассмотренные выше методы, в частности кубические сплайны, неудобны для интерактивной работы. Направление и величина касательных не дают необходимого интуитивного представления о кривой, так как неочевидна связь между набором чисел и формой соответствующей кривой. Пьер Безье предложил другой метод создания кривых и поверхностей любой формы. Безье вывел математическую основу своего метода из геометрических соображений [5-11] - [5-13], но в работах [5-14] и [5-15] показано, что его результат эквивалентен базису Бернштейна или функции полиномиальной аппроксимации.
Рис. 5-25 Кривая Безье и определяющие ее точки. Кривая Безье задается многоугольником, как показано на рис. 5-25. Так как базис Безье является бернштейновским, сразу же известны некоторые свойства кривых Безье. Например: Функции базиса вещественны. Степень многочлена, определяющего участок кривой, на единицу меньше количества точек соответствующего многоугольника. Основа формы кривой повторяет очертания многоугольника. Первая и последняя точки кривой совпадают с соответствующими точками определяющего многоугольника. Векторы касательных в концах кривой по направлению совпадают с первой и последней сторонами многоугольника. Кривая лежит внутри выпуклой оболочки многоугольника, т. е. внутри самого большого многоугольника, построенного по заданным точкам. На рис. 5-25 выпуклая оболочка обозначена штриховой и тонкой линиями. Кривая обладает свойством уменьшения вариации. Это означает, что кривая пересекает любую прямую линию не чаще, чем определяющий многоугольник. Кривая инвариантна относительно аффинных преобразований. На рис. 5-26 показано несколько четырехточечных многоугольников Безье и соответствующих кривых. На основе перечисленных выше свойств можно легко научиться предсказывать форму кривой по виду многоугольника. Математическое параметрическое представление кривой Безье имеет вид , , (5-62) где базис Безье или Бернштейна, или функция аппроксимации (5-63) с (5-64) - это -я функция базиса Бернштейна порядка .
Рис. 5-26 Многоугольники Безье для кубических кривых. Здесь - порядок определяющей функции базиса Бернштейна - и, следовательно, сегмента полиномиальной кривой, на единицу меньше количества точек определяющего многоугольника. Как показано на рис. 5-25, вершины многоугольника Безье нумеруются от 0 до . Поэтому и . На рис. 5-27 изображены аппроксимирующие функции для разных значений . Заметим, что функции симметричны. Каждая функция имеет порядок , например все четыре функции на рис. 5-27b для кубические. Максимум каждой функции достигается при и равен (5-14) . (5-65)
Рис. 5-27 Весовые функции Безье/Бернштейна. (a) Многоугольник из трех точек, ; (b) из четырех точек, ; (с) из пяти точек, ; (d) из шести точек, . Например, для кубической кривой . Максимум и достигается в и , соответственно, и имеет значения и . Рисунок 5-27b иллюстрирует этот пример. Рассмотрим уравнения (5-62) и (5-64) для первой точки на кривой, т.е. при , , и , . Итак, , первая точка кривой совпадает с первой точкой многоугольника. Аналогично, для последней точки кривой, т. е. при , , , . Итак,
и последняя точка на кривой Безье совпадает с последней точкой определяющего многоугольника. Далее, можно показать, что для любого значения параметра сумма базисных функций равна 1, т.е. . (5-66) Рассмотрим метод построения Безье на примере.
Уравнение кривой Безье можно записать в матричном виде, так же как уравнения для кубических сплайнов и параболической интерполяции (см. уравнения 5-27 и 5-44): . (5-67) Здесь и . Особенный интерес представляют матричные формы для малых значений . Для многоугольника из четырех точек кривая Безье имеет вид . Группируя коэффициенты, получим . (5-68) Аналогично, кривая Безье четвертого порядка , заданная многоугольником из пяти точек: . (5-69) В работе [5-19] приводится обобщенное представление: , где , . (5-70) Матрица - это опять . Отдельные члены матрицы таковы: . Уравнение (5-70) можно записать в более удобном виде , (5-71) где , . Уравнения (5-70) или (5-71) удобнее для расчета при больших значениях . Заметим, что для всех матрица симметрична относительно главной диагонали и правый нижний угол состоит из нулей. Для каждой отдельной кривой Безье необязательно знать касательные векторы в ее концах, но если необходимо соблюдать непрерывность кривизны и наклона в точках соединения кривых, рассчитывать нормали к поверхности для освещения, вычислять локальную кривизну, то требуется знать как первую, так и вторую производную кривой Безье. Из уравнения (5-62) первая производная кривой Безье имеет вид: . (5-72) Вторая производная такова: . (5-73) Формально дифференцируя уравнение (5-63), получаем производные базисных функций
. (5-74) Аналогично, вторые производные имеют вид: . (5-75) В начале и конце кривой Безье, т.е. при и , численный расчет уравнений (5-74) и (5-75) представляет затруднения. Другой способ вычисления -й производной при : (5-76) и при : . (5-77) Отсюда первые производные в концах будут (5-78) и . (5-79) Это показывает, что касательные к кривой Безье в первой и последней точках параллельны соответствующим сторонам многоугольника. Аналогично, вторые производные в концах таковы: (5-80а) и . (5-80b) Вторые производные в концах зависят от двух ближайших сторон, т. е. от трех ближайших вершин. В общем случае, -я производная в начальной и конечной точках зависит от этих точек и ближайших вершин многоугольника. Подробнее рассмотрим это на примере.
Условие непрерывности соседних кривых Безье формулируется очень просто. Пусть кривая Безье степени задана вершинами , а соседняя кривая Безье степени - вершинами . Тогда непрерывность первой производной в точке соединения выражается соотношением , где - скаляр.
Рис. 5-30 Непрерывность первой производной для кубических кривых Безье. Пользуясь уравнениями (5-78) и (5-79), получим . Из непрерывности кривой следует, что и . Отсюда направления касательных на стыке совпадают, если три вершины , , коллинеарны, т.е. должна лежать на линии между и . Если совпадают еще и величины касательных векторов, то является серединой отрезка от до :
или . На рис. 5-30 приведена иллюстрация для , т. е. для двух кубических кривых Безье. Условие непрерывности вторых производных между соседними кривыми: . Из условий и непрерывности в точке соединения получаем положение третьей определяющей вершины второго многоугольника, выраженное через три последние вершины первого многоугольника, а именно . Это означает, что вершины , , , , должны либо составлять выпуклый многоугольник, либо лежать на одной прямой, чтобы сохранить непрерывность на стыке.
Рис. 5-31 Непрерывность второй производной для кривых Безье четвертой степени. Для кубических кривых Безье это условие имеет вид . Несколько карандашных набросков на бумаге покажут, что данное требование существенно ограничивает множество кривых; поэтому на практике для соблюдения непрерывности вторых производных используются полиномиальные кривые более высокого порядка. На рис. 5-31 приведен пример непрерывности вторых производных для двух пятиточечных кривых Безье. Если необходима более гибкая кривая Безье, увеличивается количество определяющих точек и степень полинома. Для каждой точки на кривой Безье с определяющими вершинами многоугольника та же самая точка на новой кривой Безье с определяющими вершинами задается в виде , (5-81) где , , , , . Здесь можно с успехом применить методику из работы [5-14]. В предельном случае многоугольник сходится к кривой. Дополнительную гибкость кривой можно также получить разбиением кривой Безье на две новых таким образом, чтобы они вместе совпадали с исходной кривой. В работах Барского [5-16, 5-18] было показано, что любая кривая Безье может быть разбита с использованием произвольного параметра в диапазоне . Простейший случай - это средняя точка, т.е. (см. [5-18]). При разбиении средней точкой получаются два специальных вида кубических кривых Безье. Кубическая кривая Безье (см. упражнение 5-7) задается в виде , , с определяющими вершинами , , , . Тогда многоугольник , , , определяет кривую Безье , , соответствующую первой половине исходной кривой, а именно , , как и требовалось. Подобным образом, многоугольник , , , определяет кривую Безье , , соответствующую второй половине исходной кривой, т.е. , , как и требовалось. Новые определяющие вершины многоугольника и получаются путем приравнивания радиус-векторов и касательных векторов при , ; , и , ; , . Из соотношений (5-62) и (5-72) получаем , , , . Решение этих уравнений дает , , , . Аналогично, , , , . Эти результаты обобщаются до , , (5-82a) , . (5-82b) Дальнейшее применение определяющих многоугольников с помощью кривой Безье оставляем для самостоятельной работы.
|
1 |
Оглавление
|