Представление кривых линий
Параметризация кривых. При геометрическом моделировании фигуры идентичные кривым в пространстве, являются конечными отрезками этих кривых. Рассматриваемое множество точек кривой является отрывом непрерывного кусочка - обратимого отображения замкнутого отрезка числовой прямой. Отображаемый отрезок называется областью изменений параметра, а само изменение - параметризацией. Одна и та же кривая может быть параметризована бесчисленным множеством способов. Параметризация осуществляется заданием декартовых координат текущей точки кривой как функции некоторого параметра: x=x(t), y=y(t), z=z(t), n<t<b. Конкретный вид этих функций отличает данную параметризацию от всех точек. Например, - явные задания кривой. Положив x=t, получим один из возможных видов параметризации. Если разрешить уравнение относительно y и положить y=t, ±, то это будет другая (неоднозначная) параметризация. Будем пользоваться параметрическими уравнениями 3Д-кривой в векторной форме r(t)=x(t)e1+ y(t)e2 + z(t)e1 где
r(t)= y - радиус-вектор текущей точки на кривой, z e1, e2, e1 - орты координатных осей. Кривая называется m раз непрерывно дифференцируемой, если она допускает m раз непрерывно дифференцируемую параметризацию. Непрерывно дифференцируемые кривые (m=1), допускающие параметризацию, первая производная которой по модулю всегда отлична от нуля, (÷r÷ ¹ 0) называются гладкими. Если при çr(t¢)ç= 0, то точка может быть особой. Далее мы будем рассматривать гладкие кривые, обладающие кусочно-непрерывной ограниченной кривизной, т.е. допускающими такую параметризацию, r = r(t), что вторая производная кусочно-непрерывна и ограничена. Дискретно-точечным заданием кривой будем называть конечную совокупность точек кривой, упорядоченных по ее длине. В некоторых случаях могут быть заданы дополнительные сведения о свойствах кривой в окрестности соответствующей точки. Кроме заданных точек и дополнительных условий требуется наличие некоторого алгоритма интерполирования. Обычно используется интерполяция в трехмерном пространстве. Рассмотрим представление кривых с помощью кубических параметризованных кривых
или в матричном виде
y(t) = 0< t <1 z(t) t или r(t) = G´ T, где
T =, t
G = =
где = [], = [], = []- векторы столбцы. В зависимости от вида матрицы G получают различные формы описания параметризованных кривых. Обсудим вопрос, почему рассматриваются именно кубические кривые. Дело в том, что не существует кривых более низкого порядка, которые обеспечивали бы в точке соединения кривых друг с другом непрерывность положения наклоны сегментов и в то же время гарантировало бы, что концевые точки сегмента кривой проходит через заданные точки. Говорят, что кривая принадлежит к классу, если все производные функции порядков от 0(сама кривая) до n. Кубические кривые принадлежат к классу. Кривые более высокого порядка сложнее, кроме того, в ряде случаев дают неопределенную волнистость. Рассмотрим три способа описания параметрических кривых, наиболее распространенные в практике геометрического моделирования. Форма Эрмита. Кривая задана координатами начальной и конечной точки, а также величиной производных в этих точках. Точки обозначим:
=, =,
а векторы
=, =.
Через эту кривую нужно провести параметризованную кривую третьего порядка с заданными на концах производными. При этом в параметр t= 0, в параметр t=1.
t=1 t= 0
Рассмотрим сперва координату x: x(0)=, x(1)=, x¢(0)=, x¢(1)=. Запишем первую строку из матричного соотношения (*)
3t2 x¢(t)= T¢TAx = 2t ´ Ax; При t= 0 x(0)= x1= [0 0 0 1] ´ Ax ; x¢(0) = qx1 = [0 0 1 0] ´ Ax ; При t= 1 x(1)= x2= [ 1 1 1 1] ´ Ax ; x¢(1) = qx2 = [3 2 1 0] ´ Ax ; сведем написанные четыре уравнения в систему:
x(0) 0 0 0 1 x1 x(1) = 1 1 1 1 ´ Ax = x2 x¢(0) 0 0 1 0 qx1 x¢(1) 3 2 1 0 qx2 Mh-1 Ax Обращая матрицу Mh-1, получим искомый вектор Ax
Ax = Mh ´ x2 = Mh ´ Ghx. qx1 qx2
Проводя вычисления, получим
Mh = -3 3 -2 -1 0 0 1 0 1 0 0 0 Mh называется эрмитовой матрицей; Ghx называется геометрическим вектором Эрмита. Аналогично можно вычислить Ay, Az: Ay = Mh ´ Ghy; Az = Mh ´ Ghz. Вернемся к координатам x(t)= T¢T ´ Ax = T¢T ´ Mh ´ Ghx; y(t)= T¢T ´ Ay = T¢T ´ Mh ´ Ghy; z(t)= T¢T ´ Az = T¢T ´ Mh ´ Ghz; или rT(t) = TT ´ Mh ´ Gh, где Gh - геометрическая матрица Эрмита.
x1 y1 z1 r1T Gh = [ Ghx Ghy Ghz ] = x2 y2 z2 = r2T x1¢ y1¢ z1¢ q1T x2¢ y2¢ z2¢ q2T
Рассмотрим произведение TT ´ Mh = Fh(t)
Fh(t) = T ´ Mh = [ t3 t2 t 1 ] ´ -3 3 -2 -1 = 0 0 1 0 1 0 0 0
= [ 2t3 - 3t2 + 1; -2t3 + 3t2; t3 - 2t2 + t; t3 - t2 ]. Тогда окончательно rT(t) = Fh(t) ´ Gh. Четыре функции переменной t, входящие в вектор Фh называется функциями сопровождения. Первые две из них сопрягают точки r1 и r2, а посредством двух других сопрягаются векторы производных r1¢ и r2¢. В результате получается сопряженное объединение r(t). В качестве примера рассмотрим семейство кривых Эрмита, проходящие через две точки P1 и P2, у которых |r¢| имеет различную величину, а arg | r¢| одинаков.
Q1 32
P1 P2
| r¢| Q2
Отметим, что длина касательной - это явление, возникающее из-за параметрической формы представления. Форма Безье (Busier) - эта форма кубической кривой близка к эрмитовой форме, однако отличается от нее заданием касательных векторов в конечных точках. В форме Безье используется четыре точки.
Q1Г3
Г1 Г2 P2
Г4 Q4
Касательные вектора в конечных точках задаются отрезками P1Q1 и P2Q2. В частности, касательные вектора r1¢ и r2¢ эрмитовой формы определяются так, чтобы соответствовать четырём точкам Безье: P1Q1 и P2Q2.
r1¢ = 3(rQ1 - rP1) = r¢(0) = 3(Г3 - Г1); r2¢ = 3(rQ2 - rP2) = r¢(1) = 3(Г2 - Г4).
Следовательно, матрица перехода от эрмитовой формы к форме Безье имеет вид
r1 1 0 0 0 Г1 Gh = r2 = 0 1 0 0 ´ Г2 = Mhb ´ Gb, r1¢ -3 0 3 0 Г3 r2¢ 0 3 0 -3 Г4
где Mhb - переходная матрица. Отсюда r(t) = TT ´ Mh ´ Gh = TT ´ Mh ´ Mhb ´ Gb = TT ´ Mb ´ Gb, где Mb - матрица Безье.
Mb = -3 3 -2 -1 ´ 0 1 0 0 = 3 0 -6 3 0 0 1 0 -3 0 3 0 -3 0 3 0 1 0 0 0 0 3 0 -3 1 0 0 0
Вычислив произведение Fb = TT ´ Mb
Fb = [ t3 t2 t 1] ´ Mb = [ -t3 + 3t2 - 3t + 1; t3; 3t3 -6t2 + 3t; -3t3 + 3t2 ] = = [ (1-t)3; t3 ; 3t(t-1)2; 3t2(t-1)]. r(t) = Fb ´ Gb = r1(1-t)3 + r2t3 + r33t(t-1)2 + r43t2(t-1).
Обратим внимание, что каждый из коэффициентов при векторах изменяется в диапазоне 0...1, а сумма коэффициентов вида равна 1. Это выражение оценивает взвешенное среднее для четырех управляющих точек. При t = 0 r(0) = Г1 t = 1 r(1) = Г2 При стыковке нескольких отрезков должно выполняться условие Q2P2 = kP2Q3, т.е. производные должны соблюдать по направлению. Форма Безье используется в машинной графике чаще, чем эрмитова форма: 1) геометрически матрицу удобнее задавать в диалоговом режиме, удобнее задавать четырьмя точками, чем указывать производную в явном виде, как это требуется при использовании эрмитовых форм. 2) четыре управляющих точки определяют выпуклый четырехугольник, натянутый на эти точки и содержащий внутри себя кривую. Эта оболочка оказывается полезной при отсечении кривой по окну и видимому объему.
|