Главная > Математика > Геометрическое моделирование
<< Предыдущий параграф
Следующий параграф >>
<< Предыдущий параграф Следующий параграф >>
Макеты страниц

2.6. Представление кривых второго порядка кривыми Безье

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

В декартовой системе координат на некоторой плоскости коническое сечение описывается уравнением второй степени (2.3.1)

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

(2.6.1)

где А — некоторый параметр. Это уравнение также является уравнением второго-порядка и при определенном значении параметра А описывает некоторое коническое сечение. При любом значении параметра А коническое сечение проходит через точки пересечения прямой с прямыми и через точки пересечения прямой с прямыми . этих точках удовлетворяется уравнение (2.6.1) при любом А. Уравнение (2.6.1) описывает семейство (или пучок) конических сечений, проходящих через четыре точки пересечения двух пар линий (рис. 2.6.1). Выбрать нужное коническое сечение из данного семейства можно, определив его пятую точку, не совпадающую с имеющимися точками, и тем самым определится параметр А.

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

На рис. 2.6.1 видно, что по мере приближения прямой к точка А приближается к точке В, точка С приближается к точке D, хорда АВ и CD стремятся к касательным линиям конических сечений семейства. Когда прямые линии и совпадут, уравнение (2.6.1) примет вид

(2.6.2)

и будет представлять семейство конических сечений, касающихся линий и h в точках их пересечения с линией 13 (рис. 2.6.2).

Если задать еще одну точку R, не совпадающую с точками и С, то мы определим коническое сечение и параметр А в (2.6.2).

Рис. 2.6.1

Рис. 2.6.2

Коническое сечение в данном случае определяется четырьмя точками: А, С, R и точкой Е пересечения прямых линий . Если точка R лежит внутри треугольника АЕС, то коническое сечение будет иметь непрерывный участок, лежащий внутри этого треугольника. Можно показать, что если точка R делит пополам отрезок, соединяющий середины отрезков АЕ и СЕ, то коническое сечение является параболой, если точка R находится между упомянутой параболой и отрезком АС, то коническое сечение является эллипсом, в остальных случаях коническое сечение является гиперболой.

Уточним поставленный выше вопрос: можно ли описать часть конического сечения, лежащую внутри треугольника АЕС, квадратичной кривой Безье, построенной по характеристической ломаной с вершинами в точках А, Е и С. Пусть радиус-векторы точек А, Е, С равны соответственно . Введем косоугольную систему координат на плоскости, начало которой лежит в точке а координатным базисом являются векторы Координаты этой системы обозначим через u и v. В косоугольной системе вектор имеет координаты вектор имеет координаты вектор имеет координаты Произвольная точка R будет иметь радиус-вектор

(2.6.3)

В косоугольной системе прямые линии описываются уравнениями соответственно. Подставим их в (2.6.2) и получим уравнение

(2.6.4)

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

Предположим, что мы выбрали из семейства (2.6.4) некоторое коническое сечение, т. е. нам известен в (2.6.4) параметр . Возьмем некоторую точку на коническом сечении внутри треугольника с вершинами в точках (рис. 2.6.3).

Пусть ее координаты равны Квадратичная кривая Безье описывается уравнением (2.5.8) как векторная функция параметра t. Попытаемся записать в аналогичном виде коническое сечение.

Рис. 2.6.3. Коническое сечение

Рис. 2.6.4

В общем случае можно считать, что оно описывается функцией (2.6.3), в которой параметры и и v связаны соотношением (2.6.4). Запишем радиус-вектор конического сечения в виде функции одного параметра, в свою очередь являющегося функцией и и V. Для этого нам потребуется касательная к коническому сечению в точке и точки пересечения этой касательной с осями косоугольной системы координат.

Касательная линия к коническому сечению (2.6.4), записанному в виде в точке с координатами описывается уравнением

Производные в точке с учетом того, что удовлетворяют уравнению (2.6.4), равны

Таким образом, уравнение касательной к коническому сечению в точке имеет вид

(2.6.6)

Она пересекает координатные оси в точках

что показано на рис. 2.6.4.

Обозначим отношения длин отрезков, на которые касательная к коническому сечению делит векторы через

Точку конического сечения можно характеризовать координатами или координатами , или отношениями . Остановимся на последнем способе. Выразим через используя соотношения (2.6.7)

Подставив (2.6.8) в (2.6.3), получим зависимость радиус-вектора конического сечения как функцию параметров

(2.6.9)

Координаты связаны уравнением (2.6.4), а параметры — более простым соотношением

т. е. произведение для заданного конического сечения. Фактически радиус-вектор конического сечения зависит от одного параметра.

Введем параметр t для конического сечения, от которого будут зависеть координаты и, следовательно, параметры . В соответствии с кривой Безье для точки параметр , а для точки параметр При движении по коническому сечению от точки к точке координата изменяется от 1 до 0, координата изменяется от 0 до 1, а параметр t должен изменяться от 0 до 1. Обратим внимание на выражения (2.6.7). Заметим, что из (2.6.4) следует

Подставим это равенство в (2.6.7) и получим

(2.6.11)

где - постоянный коэффициент, о качестве параметра t конического сечения примем величину

тогда равенства (2.6.11) примут вид

(2.6.13)

Подставим последние равенства в (2.6.9) и получим зависимость радиус-вектора конического сечения (2.6.3) как функцию одного параметра

Более удобно для использования последнего равенства ввести параметр

который называется весож точки При использовании веса w формула (2.6.9) примет вид

Сравним выражение для радиус-вектора кривой Безье второй степени (2.5.8) и выражение для радиус-вектора конического сечения (2.6.15). Они совпадают в случае, когда что справедливо для одной из кривых семейства конических сечений, которой соответствует Коническое сечение (2.6.4) при описывается уравнением

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

Рис. 2.6.5. Построение дуги окружности

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

Теперь мы можем ответить на поставленный выше вопрос: кривой Безье второй степени в общем случае нельзя описать часть конического сечения, но его можно описать как частный случай кривой (2.6.15). Кривая Безье второй степени также может быть описана как частный случай кривой (2.6.15).

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

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

Длина отрезков ВС и АВ вычисляются через радиус и угол раствора дуги а

Тогда

Таким образом, дуга окружности радиуса с углом раствора а, может быть построена как квадратичная кривая (2.6.15), заданная точками с весом средней точки . Радиус-вектор дуги описывается функцией

(2.6.16)

где точки связаны соотношениями

Параметрическая длина дуги равна единице. Формула (2.6.16) справедлива в диапазоне углов . На рис. 2.6.6 приведена дуга окружности с углом 120°, а на рис. 2.6.7 приведена дуга окружности с углом 240°.

Рис. 2.6.6. Положительный вес точки

Рис. 2.6.7. Отрицательный вес точки

Обе дуги имеют одни и те же характеристические точки, но в первом случае вес средней точки равен 1/2, а во втором случае вес средней точки равен —1/2. Можно разбить дугу на несколько частей и представить в виде составной кривой, тогда параметрическая длина дуги будет равна числу составных частей.

Построим с помощью формулы (2.6.15) четверть эллипса по трем вершинам образующим прямой угол: как показано на рис. 2.6.8.

Полуоси эллипса определяются длинами векторов: . Для полного определения эллипса остается найти вес точки . В косоугольных координатах и и v, приведенных на рис. 2.6.4, уравнение эллипса имеет вид которому в (2.6.4) соответствует . В соответствии с (2.6.14) вес средней вершины

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

Рис. 2.6.8. Дуга эллипса

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

Рис. 2.6.9. Коническое сечеиие, построенное по четырем точкам

Точка должна лежать в одной плоскости с точками строго внутри угла, построенного по этим точкам с вершиной в . Построим коническое сечение в виде

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

Из (2.6.14) следует, что вес

Косоугольные координаты точки Р, через которые вычисляется вес в (2.6.18), равны отношениям длин отрезков соответственно. Обозначим через длину отрезка через — длину отрезка через — длину отрезка VP, через — длину отрезка UP, через — площадь треугольника через — площадь треугольника через S — площадь треугольника через а — угол Тогда

В принятых обозначениях вес средней точки выразится через площади треугольников

Вес w вершины можно найти, если , т. е. если точка не лежит на линиях (точка должна лежать внутри угла . В общем случае вес может быть как положительным, так и отрицательным. Как видно из рис. 2.6.6 и 2.6.7, если точка Р лежит внутри треугольника то вес точки положителен, если же точка Р лежит вне треугольника , то вес точки отрицателен.

Если мы вычислили вес w средней вершины, то в соответствии с (2.6.14) вычислим параметр конического сечения и конкретный вид уравнения (2.6.4) сечения

Второй инвариант данного конического сечения равен: . В зависимости от знака инварианта конические сечения делятся на три типа: эллиптический тип, если гиперболический, если параболический, если . Значение инварианта и соответствующий тип конического не зависят от того, в какой системе координат вычислен инвариант. Таким образом, если то кривая (2.6.17) описывает эллипс, если то кривая описывает гиперболу, если то кривая описывает параболу.

Возможности кривой (2.6.15) можно существенно расширить, если для каждой из вершин ввести вес.

<< Предыдущий параграф Следующий параграф >>
Оглавление