Кривые 2-го порядка. Сплайны. Кривые Безье
Лекция 9
Кривые 2-го порядка. Сплайны. Кривые Безье
Кривые второго порядка
Общий вид уравнения линии 2-го порядка:
a1x2+a2y2+a3xy+a4x+a5y+a6=0.
Рассмотрим различные формы линий 2-го порядка.
Уравнение окружности:
(x-x0)2+(y-y0)2=r2 – нормальное уравнение окружности,
C(x0, y0) – центр окружности,
Рекомендуемые материалы
M(x,y) – произвольная точка окружности,
x2+y2+ax+by+g=0,
a=-2x0; b=-2y0; g=x02+y02-r2.
Ax2+Ay2+Dx+Ey+F=0 – общее уравнение окружности.
Действительная окружность при (a2+b2)/4-g³0, где a=D/A; b=E/A; g=F/A.
Таким образом, действительная кривая 2-го порядка является окружностью тогда и только тогда, когда:
1) коэффициенты при квадратах текущих координат равны между собой;
2) отсутствует член, содержащий произведение текущих координат.
Центральные кривые 2-го порядка – кривые, имеющие собственный центр симметрии.
A(x-x0)2+C(y-y0)2=D, A¹C.
O(x0, y0) – центр симметрии кривой;
x=x0, y=y0 – оси симметрии кривой.
Пусть x0=0 и y0=0.
Кривая 2-го порядка принадлежит эллиптическому типу, если коэффициенты A и C имеют одинаковые знаки, т.е. AC>0.
Пусть A>0 и C>0, тогда если:
● D>0 – действительный эллипс, x2/a2+y2/b2=1 – каноническое уравнение эллипса;
● D=0 – вырожденный эллипс (кривая вырождается в точку);
● D<0 – мнимый эллипс.
Кривая 2-го порядка является кривой гиперболического типа, если коэффициенты A и C имеют противоположные знаки, т.е. AC<0.
Пусть A>0, тогда C<0:
● если D>0 – гипербола (рис. 7), x2/a2-y2/b2=1 – каноническое уравнение гиперболы;
● если D=0 – вырожденная гипербола представляет собой пару пересекающихся прямых
;
![]() |
● если D<0 – сопряженная гипербола (рис. 7), xy=a2 (a>0) – обратная пропорциональность. Графиком является равнобочная гипербола (к уравнению гиперболы легко прийти, повернув оси координат на 45 º – рис. 8).
![]() |
Нецентральные кривые 2-го порядка не имеют центра симметрии или имеют бесконечное множество центров, могут иметь ось симметрии.
(y-y0)2=2p(x-x0) – парабола, O(x0, y0) – вершина параболы,
P – параметр параболы.
Если вершина параболы находится в начале координат и p>0, то y2=2px – каноническое уравнение параболы.
Параметрические уравнения линий.
Параметрическое уравнение окружности:
Параметрическое уравнение эллипса:
Параметрическое уравнение параболы:
Циклоида (кривая, описываемая точкой окружности, катящейся без скольжения по прямой линии):
Спираль Архимеда: r=aj (a>0) – уравнение в полярных координатах.
Сплайны. Кривые Безье
Сплайн – гладкая кривая, которая проходит через две или более опорных точек, а также имеет расположенные вне ее управляющие точки, влияющие на форму сплайна. Наиболее общие типы сплайнов – кривые Безье и B-сплайны (B-spline curves). Типичным примером сплайнов являются также неоднородные рациональные B-сплайны (Non-Uniform Rational B-Spline – NURBS). Сплайны состоят из вершин (Vertices) и сегментов (Segments). Каждая вершина сплайна имеет касательные векторы (Tangents), снабженные на концах управляющими точками, или маркерами (Handels). Маркеры касательных векторов управляют кривизной сегментов сплайна при входе в вершину, которой принадлежат касательные векторы, и выходе из нее.
Кривые Безье разработаны математиком Пьером Безье. Кривые и поверхности Безье использовались в 60-х годах компанией "Рено" для компьютерного проектирования формы кузовов автомобилей. В настоящее время они широко используются в компьютерной графике.
Кривые Безье описываются в параметрической форме:
x=Px(t), y=Py(t).
Значение t выступает как параметр, которому отвечают координаты отдельной точки линии.
Многочлены Безье для Px и Py имеют следующий вид:
где Cmi – сочетание m по i, а xi, yi – координаты точек ориентиров Pi. Значение m можно рассматривать и как степень полинома, и как значение, которое на единицу меньше количества точек-ориентиров.
Рассмотрим кривые Безье, классифицируя их по значени-
ям m.
m=1 (по двум точкам). Кривая вырождается в отрезок прямой линии, определяемой концевыми точками P0 и P1. Параметрическое уравнение:
P(t)=(1-t)P0 + tP1.
![]() |
m=2 (по трем точкам). Параметрическое уравнение:
P(t)=(1-t)2P0 + 2t(1-t)P1 + t2P2.
![]() |
m=3 (по четырем точкам – кубическая). Используется довольно часто, в особенности в сплайновых кривых. Параметрическое уравнение:
P(t)=(1-t)3P0 + 3t(1-t)2P1 + 3t2(1-t)P2 + t3P3.
![]() |
Геометрический алгоритм для кривой Безье позволяет вычислить координаты (x, y) точки кривой Безье по значению параметра t (рис. 9).
1. Каждая сторона контура многоугольника, проходящего по точкам-ориентирам, делится пропорционально значению t.
2. Точки деления соединяются отрезками прямых и образуют новый многоугольник. Количество узлов нового контура на единицу меньше, чем количество узлов предыдущего контура.
3. Стороны нового контура снова делятся пропорционально значению t и т.д. Это продолжается до тех пор, пока не будет получена единственная точка деления – точка кривой Безье.
Сегмент кривой Безье 3-го порядка описывается положением четырех точек. Две из них являются опорными (узлами кривой): начальная точка P0 (x0, y0) и конечная P3 (x3, y3). Точки P1 (x1, y1) и P2 (x2, y2), определяющие положение касательных относительно отрезка, называются управляющими. Метод построения кривой Безье основан на использовании пары касательных (управляющих линий), проведенных к сегменту кривой в его окончаниях. На форму кривой влияют угол наклона касательной и длина ее отрезка.
Параметрическое уравнение Безье описывает положение точек и, тем самым, форму кривой. Уравнение решают относительно параметра t, принимающего значения от 0 (в начальной точке) до 1 (в конечной точке). При построении сегмента кривой Безье на плоскости рассчитывают координаты x и y (для четырех точек, из них двух управляющих):
R(t)=P0(1-t)3 + P1t(1-t)2 + P2t2(1-t) + P3t3, где 0<t<1;
x(t)=axt3 + bxt2 + cxt + x0;
x1=x0 + (cx:3); x2=x1 + [(cx+bx):3]; x3=x0 + cx + bx + ax;
y(t)= ayt3 + byt2 + cyt + y0;
y1=y0 + (cy:3); y2=y1 + [(cy+by):3]; y3=y0 + cy + by + ay.
Следовательно:
cx=3(x1-x0); bx=3(x2-x1)-cx; ax=x3 - x0 - cx - bx;
cy=3(y1-y0); by=3(y2-y1)-cy; ay=y3 - y0 - cy - by.
Значение t определяет степень влияния точек на форму кривой. Например, при t=0,333 наибольший "вес" приобретает точка P1, а при t=0,666 – точка P2. Из приведенных уравнений вытекает, что кривая может проходить лишь через начальную и конечную опорные точки сегмента (P0, P3). Тем самым достигаются простота описания и стабильность кривой Безье.
Кривые Безье обладают рядом свойств, определяющих возможность их использования в векторной графике. С геометрической точки зрения, производной кривой Безье будет другая кривая Безье, векторы управляющих точек которой определяются вычислением разностей векторов управляющих точек исходной кривой.
Основные свойства кривой Безье:
● непрерывность заполнения сегмента между начальной и конечной точками;
● кривая всегда располагается внутри фигуры, образованной линиями, соединяющими контрольные точки;
● при наличии только двух контрольных точек сегмент представляет собой отрезок прямой линии;
● прямая линия образуется при коллинеарном (на одной прямой) размещении управляющих точек;
● кривая Безье симметрична, т.е. обмен местами между начальной и конечной точками (изменение направления траектории) не влияет на форму кривой;
Лекция 6 - лекция, которая пользуется популярностью у тех, кто читал эту лекцию.
● масштабирование и изменение пропорций кривой Безье не нарушает ее стабильности, так как она, с математической точки зрения, "аффинно инвариантна";
● изменение координат хотя бы одной из точек ведет к изменению формы всей кривой Безье;
● степень кривой всегда на единицу меньше числа опорных точек (т.е. при трех опорных точках форма кривой - парабола);
● размещение дополнительных опорных точек вблизи одной позиции увеличивает ее "вес" и приводит к приближению траектории кривой к данной позиции;
● окружность не может быть описана параметрическим уравнением кривой Безье;
● невозможно создать параллельные кривые Безье, за исключением тривиальных случаев (прямые линии и совпадающие кривые).