р,||г - rjsina, S2 = 0,5|р2 - p,||r - rjsina, где a — угол Р0Р|Р2. В принятых обозначениях вес средней точки выразится через площади треугольников формулой
Вес w точки Р) можно найти, если SXS2 * 0, т. е. если точка г не лежит на линиях Ро - р, и р2 - р,. В общем случае вес может быть как положительным, так и отрицательным. Как видно из рис. 1.19 и 1.20, если точка г лежит внутри треугольника Р0Р|Р2, то вес точки р( положителен, в противном случае — отрицателен.
ЗА.2 — 2А. — 1
Знак второго инварианта / = —— конического сечения (1.25)
4
характеризует тип кривой: при / > 0 коническое сечение имеет эллиптический тип; при / < 0 — гиперболический тип; при / = 0 — параболический тип. Из соотношения (1.31) следует, что при \w\ < 1 кривая (1.30) описывает участок эллипса, при \ w\ > 1 — участок гиперболы; при \w\ = = 1 — участок параболы.
Рациональные кривые Безье
Формула (1.30) имеет несимметричный вид, так как коэффициет w приписан только точке р,. Умножим числитель и знаменатель правой части (1.30) на некоторое число w0 и получим
= (1-O2^op0 + 2?(1-Qwlpl +f2p2w0 (1 -t)2w0 +2/(1 -t)wx +t2w0 '
где w| = w0w
.
Заменим iv0 в правой части формулы на некоторое число w2. После таких изменений контрольные точки р0, р,, р2 получат коэффициенты w0, wh w2 соответственно, а формула (1.30) примет симметричный вид. В результате получим кривую
2
-> У B}w,р, г(;) ^oPo + ^O-^iPi +t w2p2 =
(\-t)2w0 + 2t(l-t)wt +t2w2 £Biw
/•=0
Коэффициенты w0, wb w2 называют весами контрольных точек.
Используем полученный результат для обобщения кривой Безье произвольной степени. Аналогично зависимости (1.33) запишем формулу для вычисления радиуса-вектора кривой Безье, построенной по произвольному числу п вершин, в виде
;/e[0, 1],
где B"(t) — функции Бернштейна (1.17). В общем случае каждая контрольная точка р, кривой (1.34) имеет свой вес wt. Кривые, контрольные точки которых обладают весами, называют рациональными. Кривая (1.34) называется рациональной кривой Безье степени п.
В общем случае всегда можно перейти от рациональной кривой Безье степени п к рациональной кривой Безье степени п + 1, умножив числитель и знаменатель правой части равенства (1.34) на равное единице число t + (1 - t) и перегруппировав слагаемые.
Покажем это на примере квадратичной рациональной кривой Безье. Умножим числитель и знаменатель правой части равенства (1.33) на равное единице число t + (1 -1), перегруппируем слагаемые по степеням произведений t и (1 - /) и в результате придем к выражению
r(/) = (1 - /)3м;0р0 + r(l - /)2(2W|P, + w„ Р(>) + /2(1 - 0(2^^, + w2p2) + t3w2 р,
(\ -1)3w0 +1(\ - t)2(2wt + w0) + t2(l-t)(2w{ + w2) + t3w2
Придадим правой части этого равенства форму кубической кривой Безье. Для этого введем обозначения для весов и вершин в правой части последнего выражения
2w,p, +w0p0. , 2W|P] +w2p2 3m^|* ’ 2 3 w
{
Теперь квадратичная кривая (1.33) примет форму кубической кривой (опустим звездочки у контрольных точек и их весов)
Полученная кубическая кривая полностью совпадает с исходной квадратичной кривой, но ее контрольная ломаная и веса контрольных точек стали другими. Умножив числитель и знаменатель правой части последнего равенства на не равное нулю число / + (1 - /), перейдем к рациональной кривой Безье четвертой степени, которая описывает все то же коническое сечение. Этот процесс можно продолжать и дальше.
Если считать, что в знаменателе правой части (1.34) стоит вес w(t) радиуса-вектора кривой г(/), то его можно считать дополнительной координатой, так как формула его вычисления через веса вершин совпадает с формулой вычисления координат радиуса-вектора через координаты вершин. При работе с точками, имеющими вес, удобно использовать однородные координаты
wpx
wp2 \wp
где рь ръ ръ — координаты точки р; w — вес точки. В терминах однородных координат радиус-вектор рациональной кривой Безье описывается равенством, по форме совпадающим с равенством для кривой Безье
(1.16):
Вес точки подвергается тем же преобразованиям, что и ее координаты, поэтому с однородными координатами радиуса-вектора можно работать без выделения декартовых координат. Декартовы координаты точки рациональной кривой получим делением однородных координат на дополнительную координату.
Радиус-вектор рациональной кривой равен частному отделения двух функций параметра кривой, поэтому при вычислении производной рациональной кривой правую часть следует рассматривать как сложную функцию. Если условно обозначим радиус-вектор рациональной кривой
wr „ „
как г = —, то производная радиуса-вектора рациональной кривои оп-
w
dr _ 1 d(wr) wr dw dt w dt w2 dt
Если веса всех контрольных точек равны, то их можно вынести из- под знаков суммирования и сократить. Тогда в силу свойства полиномов Бернштейна (1.18) рациональная кривая Безье (1.34) становится равной обычной кривой Безье (1.16)
.
Рис. 1.23
Наличие весов у контрольных точек дает дополнительные возможности при редактировании кривой. Заменим вес Wj на Wj + Aw, тогда кривая
изменится на кривую
£ B?(t)WjPi + B”(t)Awp
г *(/) =
£ В? (t)Wf + Я" (t)Aw 1 + 5(Г)
ы о
B”(t)Aw
где 5(/) = — . Следовательно, для любого Aw > 0 точка исходной
Z B?(t)Wi
1=0
кривой смещается к точке ру и ее новое положение г(/)* делит в отношении 1:6(г) отрезок с началом в точке г(t) и концом в точке ру.
На рис. 1.23 приведены рациональные кривые Безье пятой степени, построенные по одним и тем же контрольным точкам с весами, равными единице, для всех точек, кроме точки р3. Видим, что чем больше относительный вес точки, тем ближе к этой точке располагается рациональная кривая Безье. Если вес точки отрицательный, то точка как бы отталкивает кривую от себя.
Несмотря на большие возможности, кривые Безье обладают некоторыми ограничениями, а именно: порядок кривых жестко связан с числом точек; область определения параметра кривых предопределена; кривые не могут быть циклически замкнутыми.
Разделенные разности
Разделенные разности используются для построения сплайнов. На основе разделенных разностей строятся скалярные функции, являющие-ся обобщением функций Берштейна, которые широко применяются в геометрическом моделировании.
Пусть нам известны значения/(/,) некоторой функции /(/) при зна- чениях-'параметра tr Разделенными разностями первого порядка называют отношения
Л/о,Г,1-^*4 <136>
По разделенным разностям первого порядка вычисляются разделенные разности второго порядка
f\t , t л_
J L'o>'i>‘2J- " ~ •
*2
Разделенные разности т-го порядка вычисляются по разделенным разностям (т - 1)-го порядка
/[/0, tm)= /[/|^’ •••■tJ 1. (1.37)
Параметры th i = 0, 1, ..., m, называют .узлами. Разделенные разности будем обозначать символом функции, по которой она построена, с квадратными скобками, в которых перечислены узлы. В литературе для разделенной разности используется также обозначение [/ь t2, tm]f Порядок разделенной разности на единицу меньше числа узлов в квадратных скобках. Разделенными разностями нулевого порядка считаются значения функций в узлах /[ /,] = /(/,).
Разделенная разность т-го порядка выражается через значения функции /(/) в узлах соотношением
/
ftf0, —j tm\-
J=0(tj ~t0)(tj -tj_\){tj -tj+l)...(tj-tm)
™ fit)
= Y— -J— , (1.38)
felV0 ,mVj)
где W0,m'(tj) — производная функции lV0,m(t) = (t - t0)(t - /,)...(/ - /m_,)x x(t - tm), вычисленная при t= tj. Индексы в обозначении функции TV0,m(t) указывают номера начального и конечного узлов.
Равенство (1.38) докажем методом индукции. Для разделенной разности первого порядка формула (1.38) совпадает с (1.36), т.е. для т = 1 равенство (1.38) справедливо. Предположим, что равенство (1.38) справедливо для разделенных разностей (т - 1)-го порядка, и убедимся, что из этого предположения следует его верность для разделенных разностей т-го порядка. Для этого найдем разность равенств
f\t t t 1-У Vj *о№)
2 Геометрическое моделирование
ГЕОМЕТРИЧЕСКОЕ МОДЕЛИРОВАНИЕ 2
fHib 13
«)-£■ ^ р„ 15
... -h 18
+ q,+i(-^2 + w3)(thi - h) = a0(^)p, + «i(^)p,+i + Po(^)(^+i - Oq, + 18
г, = 27
<{ 29
f\t\' hi •••> ^ml ~.Л4)> ••■» tm-1] =
ltm-h)Kh) I 1 (tm-t0)Atm)
W0,mVo) M W0,m'(tj) W0tmVJ
= d -t )Y
" “ A»'.,„'«,)■
из которого после деления на (t„-t0) на основании (1.37) следует (1.38).
Из равенства (1.38) видно, что разделенная разность не зависит от порядка, в котором следуют узлы Г0, ..., в списке аргументов.
Разделенные разности могут быть построены на последовательности с совпадающими узлами. Узлы, значения которых совпадают, называют кратными узлами. Так, если t[ = t2 = ... = tk, то говорят, что узел обладает кратностью к. Если разделенная разность первого порядка построена на кратном узле, то она равна производной функции в данной точке
Do'stlaringiz bilan baham: |