Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Pobegailo

.pdf
Скачиваний:
178
Добавлен:
29.02.2016
Размер:
11 Мб
Скачать
☆

Pi = Ri H

(9.1)

для i {1, 2, 3}, которые, как было показано в разделе 2.8, имеют только

векторные части, так как единичный кватернион H перпендикулярен единичным кватернионам P1, P2 и P3. Для этой цели введем следующие

обозначения:

Pi = cosαi +sin αiki

для i {1, 2, 3} и

H = cosβ+sinβl.

Тогда единичные кватернионы Ri могут быть определены следующим образом:

Ri = Pi H*

или при помощи формулы (2.12) как

Ri = −cosαil +cosβki +sin αi sinβ(ki ×l)

для i {1, 2, 3}. Так как эти кватернионы имеют только векторную часть, то можно ввести обозначения

mi = Ri

для i {1, 2, 3}. При этом векторы mi являются единичными осями, так как кватернионы Ri являются единичными как произведения единичных кватернионов. Используя эти обозначения, единичные кватернионы Ri могут быть представлены следующим образом:

Ri = cos(π/ 2) +sin(π/ 2)mi = mi.

Таким образом, получили, что оси mi представляют некоторые точки

Mi , лежащие на поверхности сферы S 2 с центром в начале системы ко-

ординат.

Теперь определим параметрическую дугу малой окружности единичной сферы S2 , которая проходит от точки M1 до точки M3 через точку M2 , которые соответствуют осям mi. Для этой цели используем форму-

лы (8.1), (8.3) и (8.4). Пусть n, φ и ψ обозначают соответственно ось и центральные углы, которые получены, используя эти формулы. Тогда параметризованная кривая

r(u) = R(n,u(ϕ+ψ))m1,

(9.2)

где u [0, 1], описывает требуемую дугу малой окружности на поверхности единичной сферы S 2.

190

Используя параметризованную кривую r(u), заданную равенством (9.2), определим параметризованную кривую

 

0

,

(9.3)

R(u) =

 

r(u)

 

 

где u [0, 1], которая лежит на сфере единичных кватернионов. Теперь определим параметризованную кривую

P(u) = R(u)H,

(9.4)

где u [0, 1], Так как параметризованная кривая P(u)

определяется через

параметризованную кривую R(u) и все точки это кривой являются еди-

ничными кватернионами, то очевидно, что параметризованная кривая P(u) описывает некоторую дугу окружности на сфере единичных ква-

тернионов. Можно сказать, что параметризованная кривая P(u) лежит в

плоскости, перпендикулярной кватерниону H, и каждая точка этой кривой строится поворотом кватерниона H, причем эти повороты образуют непрерывную параметризованную R(u). Так как окружности, описывае-

мые параметризованной кривой R(u), имеют различные радиусы, то в общем случае параметризованная кривая P(u) описывает дугу малой ок-

ружности на сфере единичных кватернионов.

Очевидно, что дуга ориентационной окружности P(u) начинается в ориентации P1, проходит через ориентацию P2 и заканчивается в ориентации P3. Следовательно, параметризованная кривая P(u) описывает

требуемую дугу ориентационной окружности.

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

Чтобы представить параметризованную кривую P(u) как орбиту некоторого преобразования трехмерной единичной сферы, преобразуем формулу (9.4) следующим образом. Учитывая равенства (9.1), выразим кватернион H через кватернион P1 следующим образом:

H = R1*P1.

Теперь подставим это выражение в равенство (9.4), получим следующее выражение для параметризованной кривой P(u):

P(u) = R(u)R*P .

(9.5)

1

1

 

191

Рис. 9.1. Дуги окружностей

Рис. 9.2. Дуги окружностей

с осями ориентаций

без осей ориентаций

Если ввести обозначение

R(u) = R(u)R1*,

то параметризованная кривая P(u) может быть определена следующим образом:

P(u) = R(u)P1,

где u [0, 1]. Таким образом, получили, что параметризованная кривая P(u) описывает дугу малой окружности трехмерной сферы, как орбиту

некоторого преобразования этой сферы.

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

P(u) = R(u)P1

или для различия вращений как

P(u) = R(n,uα)P1,

(9.6)

где u [0, 1]. В последнем случае подразумевается, что R(n,uα) обозначает некоторый параметризованный единичный кватернион.

9.3. Деформация ориентационных дуг

Рассмотрим единичную сферу S3, которая описана каноническим уравнением

w2 + x2 + y2 + z2 =1

192

относительно некоторой ортогональной системы координат с центром в начале сферы. Возьмем на поверхности этой сферы две различные точки P1 и P2. Предположим, что точки P1 и P2 описаны относительно задан-

ной системы координат единичными радиус-векторами P1 и P2 соответственно. Рассмотрим две дуги окружности

P(u) = R(m,uϕ)P1,

(9.7)

Q(u) = R(n,uψ)P1

(9.8)

для u [0, 1], которые лежат на поверхности сферы S3 и имеют следующие граничные точки:

P(0) = Q(0) = P1, P(1) = Q(1) = P2.

(9.9)

Из этих равенств видно, что дуги окружностей P(u)

и Q(u) соединяют

точки P1 и P2. Проблема заключается в конструировании параметризо-

ванной кривой R(u), которая лежит на поверхности сферы S3

и удовле-

творяет следующим граничным условиям:

 

R(0) = P1,

R(1) = P2 ,

(9.10)

R(k ) (0) = P(k ) (0),

R(k ) (1) = Q(k ) (1)

(9.11)

для всех k {1, 2, ..., n}, где n N. Параметризованную кривую R(u) бу-

дем называть деформацией параметризованной кривой P(u) в парамет-

ризованную кривую Q(u).

Используя сглаживающие полиномы wn (u), рассмотренные в разделе 7.5, и формулу (9.6), определим параметризованную кривую R(u) следующим образом:

R(u) = R(n, wn (u)uψ)R(m,(1− wn (u))uϕ)P1

(9.12)

для u [0, 1]. Отметим, что данная кривая лежит на поверхности сферы

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

Теорема 1. Параметризованная кривая R(u), заданная формулой (9.12),

удовлетворяет граничным условиям, заданным равенствами (9.10) и (9.11). Доказательство. Принимая во внимание равенства (9.7)–(9.9), из оп-

ределения параметризованной кривой r(u) следует, что

193

R(0) = R(n,0)R(m,0)P1 = P1, R(1) = R(n,ψ)R(m,ϕ)P1 = P2.

Следовательно, граничные условия, заданные равенствами (9.10), выполняются. Кроме того, из теоремы, доказанной в разделе 7.7, следует, что

(R(n, wn (u)uψ)R(m,(1− wn (u))uϕ))(k ) (0) = R(k ) (m,uϕ))(0),

(R(n, wn (u)uψ)R(m,(1− wn (u))uϕ))(k ) (1) = R(k ) (n,uψ)(1)

для всех k {1, 2, ..., n}, где n N. Следовательно,

R(k ) (0) = (R(n, wn (u)uψ)R(m,(1− wk (u))uϕ))(k ) (0)P1 =

= (R(m,uϕ))(k ) (0)P1 = P(k ) (0)

и аналогично

R(k ) (1) = (R(n, wn (u)uψ)R(m,(1− wn (u))uϕ))(k ) (1) P1 =

= (R(n,uψ))(k ) (1) P1 = Q(k ) (1)

для всех k {1, 2, ..., n}, где n N. Таким образом, граничные условия,

заданные равенствами (9.11), также выполняются. Теорема доказана.

Теорема 2. Параметризованная кривая R(u), определенная формулой (9.12), инвариантна относительно перехода между ортогональными сис-

темами координат с началом в центре сферы S3.

Доказательство. Возьмем произвольную ортогональную систему ко-

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

R−(u) = R(m,(1− wk (u))uϕ), R+(u) = R(n, wk (u)uψ).

Тогда координаты радиус-вектора P1 и параметризованных ортогональных поворотов R−(u), R+(u), учитывая формулу (9.5), преобразуются при переходе к новой системе координат следующим образом:

P1 = R−1P1,

R−(u) = R−1R−(u)R, R+(u) = R−1R+(u)R.

194

Используя эти равенства, координатное представление сферической кривой R(u), описанной формулой (9.11), преобразуется при переходе к но-

вой системе координат как

R−1R(u) = R−1R+(u)R−(u)P1 =

= R−1R+(u)RR−1R−(u)RR−1P1 = R+(u)R−(u)P1 = R(u).

Отсюда следует, что координатное представление сферической кривой R(u) относительно новой системы координат может быть получено из исходного представления этой кривой R(u) посредством поворота, за-

данного матрицей R−1. Теорема доказана.

Рис. 9.3. Первая дуга окружности

Рис. 9.4. Вторая дуга окружности

Рис. 9.5. Деформация дуг окружностей

195

Из теоремы 2 следует, что параметризованная ориентационная кривая R(u) инвариантна относительно перехода между ортогональными сис-

темами координат с общей начальной точкой в евклидовом аффинном пространстве E3. Параметризованная кривая R(u) будет называться де-

формацией параметризованной кривой P(u) в параметризованную кри-

вую Q(u).

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

9.4. Построение ориентационной сплайн-кривой

Теперь приведем детальное описание алгоритма построения интерполирующей кривой R(t) Cn на поверхности сферы S3, которая проходит через последовательность ориентаций (P1, P2, ..., Pk ). Для этой цели введем следующие обозначения:

• сегменты интерполирующей кривой R(t) будем обозначать Ri (t) для всех i {1, 2, ..., k −1}. При этом предполагается, что сегмент Ri (t) соединяет точки Pi и Pi+1;

•через Pi обозначим радиус-векторы соответствующих точек последовательности Pi для всех i {1, 2, ..., k};

•единичный вектор, который перпендикулярен к радиус-векторам точек Pi , Pi+1 и Pi+2 , будет обозначаться как Ni.

Тогда сформулированная в разделе 9.1 проблема построения интерполирующей сплайн-кривой может быть решена по следующему алгоритму.

Шаг 1. Выполним следующие вычисления: 1. Определяем единичный вектор

N1 =

P1 × P2 × P3

.

| P1 × P3 × P3 |

 

 

2. Находим ось n1 и центральные углы ϕ1 и ψ1, используя формулы

(8.1), (8.3) и (8.4) и подход, описанный в разделе 9.2.

3. Используя формулу (9.6), генерируем первый сегмент интерполирующей кривой R(t) следующим образом:

R1(t) = R(n1,u(t)ϕ1)P1,

(9.15)

196

где

u(t) = t −t1 t2 −t1

для t [t1,t2 ].

Здесь узлы t1 и t2 выбираются, принимая во внимание некоторые кинематические требования или ограничения. Очевидно, что параметризованная кривая R1(t) имеет следующие граничные точки:

R1(t1) = R(n1,u(t1)ϕ1)P1 = R(n1,0)P1 = P1, R1(t2 ) = R(n1,u(t2 )ϕ1)P1 = R(n1,ϕ1)P1 = P2.

Шаг i для каждого i {2, 3, ..., k − 2}. Выполним следующие вычис-

ления:

1. Определяем единичный вектор

Ni =

Pi × Pi+1 × Pi+2

.

| Pi × Pi+1 × Pi+2 |

 

 

2.

Находим ось ni и центральные углы ϕi и ψi , используя формулы

(8.1), (8.3) и (8.4) и подход, описанный в разделе 9.2.

3.

Генерируем сегмент Ri (t) интерполирующей кривой R(t), исполь-

зуя формулу (9.12):

 

 

 

Ri (t) = R(ni , wn (u(t))u(t)ϕi )R(ni−1,(1− wn (u(t)))u(t)ψi−1)Pi , (9.16)

где

 

 

 

 

 

u(t) =

t −ti

 

t

−t

 

 

 

i+1

i

для t [ti ,ti+1].

Здесь wn (u) обозначают сглаживающие полиномы, которые были оп-

ределены в разделе 7.5. Значение индекса n сглаживающих полиномов должно совпадать с требуемой степенью непрерывности интерполирующей кривой R(t).

Для того чтобы обеспечить параметрическую непрерывность интерполирующей кривой R(t) в узловых точках Pi для всех i {2, 3, ..., k −1},

узлы ti определяются следующим образом:

t

= t +

(ti −ti−1)

ψ

i−1

 

i+1

i

ϕi−1

 

 

 

197

для всех i {2, 3, ..., k −1}. Очевидно, что параметризованная кривая Ri (t) имеет следующие граничные точки:

R(ti ) = R(ni , wn (u(ti ))u(ti )ϕi )R(ni−1,(1− wn (u(ti )))u(ti )ψi−1)Pi = = R(ni ,0)R(ni−1,0)Pi = Pi ,

R(ti+1) = R(ni , wn (u(ti+1))u(ti+1)ϕi )R(ni−1,(1− wn (u(ti+1)))u(ti+1)ψi−1)Pi = = R(ni ,ϕi )R(ni−1,0)Pi = Pi+1

для всех i {2,3,…,k −1}.

Шаг (k −1). Генерируем последний сегмент интерполирующей кривой R(t) по следующей формуле:

Rk−1(t) = R(nk−2,u(t)ψk−2 )Pk−1,

(9.17)

где

u(t) = t −tk−1 tk −tk−1

для t [tk−1,tk ].

Для того чтобы обеспечить параметрическую непрерывность интерполирующей кривой R(t) в узловой точке Pk , узел tk определяется из уравнения

tk = tk−1 + (tk−ϕ1 −tk−2 ) ψk−2. k−2

Видно, что параметризованная кривая Rk−1(t) имеет следующие граничные точки:

Rk−1(tk−1) = R(nk−2,u(tk−1)ψk−2 )Pk−1 = R(nk−2,0)Pk−1 = Pk−1, Rk−1(tk ) = R(nk−2 ,u(tk )ψk−2 )Pk−1 = R(nk−2,ψk−2 )Pk−1 = Pk .

Тогда параметризованная кривая R(t), где t [t1,tk ], может быть определена как

R(t) = Ri (t)

для t [ti ,ti+1], где i {1, 2, ..., k −1}. Очевидно, что определенная таким образом параметризованная кривая R(t) имеет следующие свойства:

1. Проходит через точки Pi для i {1, 2, ..., k}, т. е. R(t) является требуемой интерполяционной кривой.

198

2.Из теоремы, доказанной в разделе 6.8, и теоремы 1, доказанной в разделе 9.3, следует, что R(t) Cn.

3.Кроме того, из теоремы 2, доказанной в разделе 9.3, следует, что параметризованная кривая R(t) инвариантна относительно вращений еди-

ничной сферы S3.

9.5. Постановка задачи сглаживания ориентационной ломаной

Рассмотрим сферу S3 , которая описана каноническим уравнением

x2 + y2 + z2 + w2 = r2

относительно ортогональной системы координат, центр которой нахо-

дится в центре сферы. Пусть на поверхности сферы S3 заданы три различные ориентации P1, P2 и P3, которые описаны ортогональными мат-

рицами P1, P2 и P3 соответственно. Предположим, что ориентации P1 и P2, а также ориентации P2 и P3 соединены дугами больших ориентационных окружностей. В общем случае эти дуги больших окружностей образуют угол в ориентации P2. Выберем некоторые ориентации Q1 и Q2 , которые лежат на этих дугах больших окружностей и отмечают соответственно начало и окончание сглаживания угла в ориентации P2. Пусть Q1 и Q2 – ортогональные матрицы, которые описывают эти ориентации.

Тогда задача формулируется следующим образом:

1. Нужно построить параметризованную кривую R(t), которая состоит из трех сегментов. Первый сегмент этой кривой описывает ориентационную дугу большой окружности от ориентации P1 до ориентации Q1. Второй сегмент этой кривой сглаживает угол в ориентации P2. Третий сегмент этой кривой описывает ориентационную дугу большой окружности от ориентации Q2 до ориентации P3.

2. Параметризованная кривая R(t) должна принадлежать классу Cn , т. е. иметь непрерывные производные до порядка n включительно.

3. Дополнительным требованием к параметризованной кривой R(t)

является ее инвариантность относительно выбора ортогональной системы координат с началом в центре сферы.

199