Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Виды компьютерной графики.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.67 Mб
Скачать

Представление кривых линий

Параметризация кривых. При геометрическом моделировании фигуры идентичные кривым в пространстве, являются конечными отрезками этих кривых. Рассматриваемое множество точек кривой является отрывом непрерывного кусочка - обратимого отображения замкнутого отрезка числовой прямой. Отображаемый отрезок называется областью изменений параметра, а само изменение - параметризацией. Одна и та же кривая может быть параметризована бесчисленным множеством способов. Параметризация осуществляется заданием декартовых координат текущей точки кривой как функции некоторого параметра:

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 где

x

r(t)= y - радиус-вектор текущей точки на кривой,

z

e1, e2, e1 - орты координатных осей.

Кривая называется m раз непрерывно дифференцируемой, если она допускает m раз непрерывно дифференцируемую параметризацию. Непрерывно дифференцируемые кривые (m=1), допускающие параметризацию, первая производная которой по модулю всегда отлична от нуля , (r  0) называются гладкими. Если при r(t)= 0, то точка может быть особой.

Далее мы будем рассматривать гладкие кривые, обладающие кусочно-непрерывной ограниченной кривизной, т.е. допускающими такую параметризацию, r = r(t) , что вторая производная кусочно-непрерывна и ограничена.

Дискретно-точечным заданием кривой будем называть конечную совокупность точек кривой, упорядоченных по ее длине. В некоторых случаях могут быть заданы дополнительные сведения о свойствах кривой в окрестности соответствующей точки. Кроме заданных точек и дополнительных условий требуется наличие некоторого алгоритма интерполирования. Обычно используется интерполяция в трехмерном пространстве.

Рассмотрим представление кривых с помощью кубических параметризованных кривых

или в матричном виде

x(t)

y(t) = 0< t <1

z(t) t

1

или r(t) = G T,

где

T = ,

t

1

G = =

где = [], = [],

= []- векторы столбцы.

В зависимости от вида матрицы G получают различные формы описания параметризованных кривых.

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

Говорят, что кривая принадлежит к классу , если все производные функции порядков от 0(сама кривая) до n. Кубические кривые принадлежат к классу . Кривые более высокого порядка сложнее, кроме того, в ряде случаев дают неопределенную волнистость.

Рассмотрим три способа описания параметрических кривых, наиболее распространенные в практике геометрического моделирования.

Форма Эрмита. Кривая задана координатами начальной и конечной точки, а также величиной производных в этих точках. Точки обозначим:

= , = ,

а векторы

= , = .

Через эту кривую нужно провести параметризованную кривую третьего порядка с заданными на концах производными. При этом в параметр t= 0, в параметр t=1.

t=1

t= 0

Рассмотрим сперва координату x :

x(0)= , x(1)= , x(0)= , x(1)= .

Запишем первую строку из матричного соотношения (*)

x(t)= X = ;

3t2

x(t)= TTAx = 2t  Ax ;

1

0

При 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

x1

Ax = Mh  x2 = Mh  Ghx .

qx1

qx2

Проводя вычисления, получим

2 -2 1 1

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 = h(t)

2 -2 1 1

h(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) = h(t)  Gh .

Четыре функции переменной t, входящие в вектор Фh называется функциями сопровождения. Первые две из них сопрягают точки r1 и r2 , а посредством двух других сопрягаются векторы производных r1 и r2. В результате получается сопряженное объединение r(t) .

В качестве примера рассмотрим семейство кривых Эрмита, проходящие через две точки P1 и P2 , у которых r имеет различную величину, а arg  r одинаков.

64

Q1 32

16

8

P1 P2

 r Q2

Отметим, что длина касательной - это явление, возникающее из-за параметрической формы представления.

Форма Безье (Busier) - эта форма кубической кривой близка к эрмитовой форме, однако отличается от нее заданием касательных векторов в конечных точках. В форме Безье используется четыре точки.

Q1Г3

P 1

Г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 - матрица Безье .

2 -2 1 1 1 0 0 0 -1 1 3 -3

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

Вычислив произведение b = TT  Mb

b = [ 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) = b  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) четыре управляющих точки определяют выпуклый четырехугольник , натянутый на эти точки и содержащий внутри себя кривую. Эта оболочка оказывается полезной при отсечении кривой по окну и видимому объему.