Г(/) = (1 - 0(Р| + (Ро - Р,)(1 - 0) + *(Р| + (Р2 - Р|Ю-
В этом же отношении точкой кривой делится и часть касательной, заключенная внутри контрольной ломаной. Таким образом, Г(50) = ро, Г|<()) = Р|, г2<0) = р2, точка А имеет радиус-вектор г0(1), точка В — радиус- вектор Г)(1>, точка С — радиус-вектор г^2) = = г (t).
Для кривых, представимых в виде
п
г(?) = £/](/)р,-, определим оператор пра
-вого сдвига Е и оператор левого сдвига L, действие которых описывается формулами
Er{t) = Х/(0р,+1; LT(t) = P/-I •
1=0 i=1
Операторы сдвига используются для компактной записи алгоритма Де Кастелье. Если действие оператора повторяется /' раз, то будем использовать степени операторов Е и L, например Е‘ и V. Представим
п
контрольные точки р, в виде кривых р, = Х^/Ру , гДе &i = 1 при / = j . У=О
и 8/ = 0 при i Ф j.
Кривая Безье, построенная по контрольным точкам р„ i = 0, 1,..., п, может быть записана в виде
г(/) = ((1-0 + ^)"Ро или г(/) = ((1-0^ + 0"Ря-
Действительно, ((1 -t) + tE)nр„ = £C'f'(I -t)n~‘ Е'р0 = £#/'(?)р,, по-
/=0 „ /=0 скольку Е1 Ро = Р/. Аналогично, ((1-/)L+ /)',р0 = 'Р,, =
/=0
п
= £ #/'(/)р,, поскольку L" 'р„ = р,.
1=0
Кривые Безье и конические сечения
Квадратичная кривая Безье
г(0 = (1 - /)2р0 + 2/(1-OPi + t2Vi (1-21)
является плоской линией и представляет собой полином второй степени параметра. Эллипс, парабола, гипербола записываются в виде функции второй степени координат. Возникает вопрос: можно ли некоторую часть конического сечения описать кривой Безье второй степени?
Пусть /, = ахх + Ьху + с, и /2 = а^х + Ь^у + с2, где х и у — координаты некоторой декартовой системы в двумерном пространстве; аь Ьь с,, аъ Ьъ с2 — числа. Тогда равенства /, = 0 и /2 = 0 будут представлять собой уравнения прямых линий в двумерном пространстве. Пусть /, = 0 и /2 = 0 уравнения двух не совпадающих прямых линий. Тогда уравнение /,/2 = 0 будет описывать некоторое коническое сечение на этой плоскости. Возьмем еще одну пару прямых линий, описываемых уравнениями /3 = 0 и /4 = 0 (/3 = аух + Ь^у + с3, /4 = й4х + Ь4у + с4), пересекающих прямые первой пары, и составим уравнение
(1 -Я.)/,/2 + W4 = 0, (1.22)
где X — некоторый параметр. Уравнение (1.22) описывает семейство конических сечений, проходящих через четыре точки пересечения двух пар линий (рис. 1.14).
Рис. 1.14
По мере приближения прямой /3 к /4 точка А приближается к точке В, точка С — к точке D, хорды АВ и CD стремятся к касательным линиям конических сечений семейства. Когда прямые линии /3 и /4 совпадут, уравнение (1.22) примет вид
(1 - Щ/2 + Я732 = 0 (1.23)
и будет представлять семейство конических сечений, касающихся линий /| и /2 в точках их пересечения с линией /3 (рис. 1.15).
Если задать еще одну точку R, не совпадающую с точками А и С, то мы определим коническое сечение и параметр к в (1.23). Коническое сечение в данном случае определяется четырьмя точками: А, С, R и точкой Е пересечения прямых линий /) и /2.
Попробуем описать часть конического сечения, лежащую внутри треугольника АЕС, квадратичной кривой Безье, построенной по контрольной ломаной с вершинами в точках А, Е и С. Пусть радиусы-векторы точек А, Е, С равны соответственно р0, р,, р2. Введем косоугольную систему координат на плоскости, начало которой лежит в точке р1# а координатным базисом являются векторы р0 - Pi и р2 - р,. Координаты этой системы обозначим через и и и. В косоугольной системе ии вектор Ро имеет координаты и = 1, и = 0, вектор р, имеет координаты и = 0, и = О, вектор р2 — координаты и = 0, v = 1. Положение произвольной точки с координатами и и и будет описывать радиус-вектор
г(и, и) = р, + м(р0 - р,) + tf(p2 - Pi). (1.24)
В косоугольной системе прямые линии /,, /2, /3 описываются уравнениями у=0, и = 0, и + и - 1 = 0 соответственно. Подставим их в (1.23) и получим уравнение
(1 - Х)ии + Х(и + и - I)2 = 0, (1.25)
которое описывает семейство конических сечений в косоугольной системе координат. Левую часть уравнения (1.25) обозначим через S(u, и).Предположим, что мы выбрали из семейства (1.23) некоторое коническое сечение, т.е. нам известен в (1.23) параметр X. Возьмем некоторую точку г конического сечения внутри треугольника с вершинами в точках р0, р,, р, (рис. 1.16).
Пусть ее координаты равны 0 < и0 < 1 и 0 < v0 < 1. В общем случае можно считать, что коническое сечение описывается функцией (1.24), в которой параметры и v\ v связаны соотношением (1.25). Запишем радиус-вектор конического сечения в виде функции одного параметра, в свою очередь являющегося функцией и и и. Для этого нам потребуются касательная к коническому сечению в точке г(и0, и0) и точки пересечения этой касательной с осями косоугольной системы координат.
Касательная линия к коническому сечению (1.25), записанному в виде S(u, v) = 0, в точке с координатами и = и0, и = v0 описывается уравнением
Производные dS/du и dS/dv в точке г(u0,v0) с учетом того, что ип, и0 удовлетворяют уравнению (1.25), равны
Do'stlaringiz bilan baham: |