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

Pobegailo

.pdf
Скачиваний:
170
Добавлен:
29.02.2016
Размер:
11.14 Mб
Скачать

8.6. Построение дуг больших окружностей по точкам

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

x2 + y2 + z2 = r2

относительно ортогональной системы координат (O, x, y, z). Возьмем на поверхности этой сферы две различные точки P1 и P2. Эти точки вместе

с центром сферы определяют секущую плоскость, которая описывается уравнением:

x y z

x1 y1 z1 = 0, x2 y2 z2

где (x1, y1, z1) и (x2 , y2, z2 )

Раскрывая определитель, щим образом:

где

a =

y1

z1

1

y2

z2

 

– координаты точек P1 и P2 соответственно. это уравнение может быть записано следую-

a1x + a2 y + a3z = 0 ,

, a

2

= −

x1

z1

,

a

=

x1

y1

.

 

 

x2

z2

 

3

x2

y2

 

 

 

 

 

 

 

 

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

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

a1 a = a2 ,a3

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

n = | aa |

или, используя векторные операции, как

180

n =

p1

× p2

 

,

(8.14)

| p

× p

|

 

 

 

 

1

 

2

 

 

 

где p1 и p2 обозначают радиус-векторы точек P1 и P2

соответственно.

Центральный угол

 

 

 

 

 

 

ϕ = POP

 

 

 

 

 

1

2

 

 

дуги большой окружности определяется как

 

ϕ = arctan(| p1 × p2 | / ( p1 p2 )).

(8.15)

Используя найденные ось и угол поворота, дугу большой окружности от точки P1 к точке P2 можно определить следующим образом:

p(u) = R(n,uϕ) p1,

где u [0, 1].

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

Рис. 8.4. Дуги больших окружностей на сфере

8.7. Сглаживание дуг окружностей

Рассмотрим сферу S2 , которая описана каноническим уравнением x2 + y2 + z2 = r2

181

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

обозначим как p1, p2 и p3 соответственно. Используя формулы (8.14) и (8.15) изпредыдущего раздела, определим две дуги больших окружностей

p(u) = R(m,uϕ) p1,

 

(8.16)

q(u) = R(n,uψ) p2 ,

 

(8.17)

где u [0, 1], которые лежат на поверхности сферы S 2

и удовлетворяют

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

 

 

p(0) = p1, p(1) = q(0) = p2,

q(1) = p3,

(8.18)

т. е. дуга окружности p(u) соединяет точку P1

с точкой P2, а дуга окруж-

ности q(u) соединяет точку P2 с точкой P3.

 

 

В общем случае дуги окружностей p(u) и q(u) образуют угол в точке стыковки P2. Задача заключается в том, чтобы сгладить этот угол. Эта

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

r(u), которая лежит на поверхности сферы S 2 и удовлетворяет следующим граничным условиям:

r(0) = p1,

r(1) = p3,

(8.19)

r(k ) (0) = p(k ) (0),

r(k ) (1) = q(k ) (1)

(8.20)

для k {1, 2, ..., n}, где n N. В этом случае параметризованная кривая r(u) будет называться параметризованной кривой, сглаживающей параметризованные кривые p(u) и q(u) или просто сглаживающей парамет-

ризованной кривой.

Для того чтобы построить сглаживающую параметризованную кривую r(u), переопределим дугу окружности p(u) следующим образом:

p(u) = R(m,(u 1)ϕ) p2,

где u [0, 1]. Теперь, используя слаживающие полиномы wn (u), которые были определены в разделе 7.5, определим параметризованную кривую

r(u) = R(n, wn (u)uψ)R(m,(1wn (u))(u 1)ϕ) p2 ,

(8.21)

где u [0, 1]. Покажем, что эта параметризованная кривая удовлетворяет

граничным условиям, заданным равенствами (8.19) и (8.20).

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

182

Рис. 8.5. Сглаживание угла на сфере

Теорема 1. Параметризованная кривая, заданная формулой (8.21), удовлетворяет граничным условиям, заданным равенствами (8.19) и (8.20).

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

r(0) = R(n,0)R(m,−ϕ) p2 = R(m,−ϕ) p2 = p1, r(1) = R(n,ψ)R(m,0) p2 = R(n,ψ) p2 = p3,

т. е. граничные условия (8.19) выполняются.

Теперь покажем, что также выполняются граничные условия (8.20). Для этого найдем значения параметрических производных кривой r(u) в

граничных точках. Используя теорему из раздела 7.8, получим

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

для k {1, 2, ..., n}, где n N. Отсюда следует, что

r(k ) (0) = (R(n, wn (u)uψ)R(m,(1wn (u))(u 1)ϕ))(k ) (0) p2 = = (R(m,(u 1)ϕ))(k ) (0) p2 = p(k ) (0)

и аналогично

r(k ) (1) = (R(n, wn (u)uψ)R(m,(1wn (u))(u 1)ϕ))(k ) (1) p2 = = (R(n,uψ))(k ) (1) p2 = q(k ) (1)

183

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

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

В разделе 3.2 было показано, что ортогональные повороты являются

автоморфизмами сферы S 2. Поэтому важно, чтобы кривые, моделируемые на поверхности сферы, были инвариантны относительно выбора ортогональных систем координат. В следующей теореме доказано, что параметризованная кривая r(u) удовлетворяет этому требованию.

Теорема 2. Сферическая кривая r(u), определенная уравнением (8.21), инвариантна относительно перехода между ортогональными системами

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

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

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

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

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

p2 = R1 p2 ,

R(u) = R1R(u)R, R+(u) = R1R+(u)R.

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

новой системе координат следующим образом:

R1r(u) = R1R+(u)R(u) p2 = = R1R+(u)RR1R(u)RR1 p2 = = R+(u)R(u) p2 = r(u).

Отсюда следует, что сферическая кривая r(u), которая определена отно-

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

Теорема доказана.

184

8.8. Сглаживание углов ломаной линии на сфере

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

1.Пусть ri (t), где i {1, 2, 3}, описывает i-й сегмент сглаживающей сплайн-кривой r(t).

2.Через m и n обозначим единичные векторы, которые перпендикулярны секущим плоскостям, определяемым соответственно точками P1,

P2 и P2, P3 вместе с центром сферы, который находится в точке O.

3. Радиус-векторы точек P1, P2 и P3 будут обозначаться соответст-

венно как p1, p2, p3.

4. Радиус-векторы точек Q1 и Q2 будут обозначаться соответственно

q1 и q2.

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

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

ϕ1 = P1OQ1,

используя соответственно формулы (8.14) и (8.15). 2. Генерируем параметризованную кривую

r1(t) = R(m,u(t)ϕ1) p1,

(8.22)

где

 

 

 

 

u(t) =

t t1

 

t

2

t

 

 

 

 

1

 

 

для t [t1, t2 ].

Здесь узлы t1 и t2 могут быть выбраны, принимая во внимание дополнительные кинематические или геометрические требования.

Очевидно, что в этом случае параметризованная кривая r1(t) имеет следующие граничные точки:

r1(t1) = R(m,u(t1)ϕ1) p1 = R(m,0) p1 = p1, r1(t2 ) = R(m,u(t2 )ϕ1) p1 = R(m,ϕ1) p1 = q1.

185

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

ϕ2 = Q1OP2 , ψ1 = P2OQ2 ,

используя соответственно формулы (8.14) и (8.15).

2. Используя формулу (8.21), генерируем параметризованную кривую r2 (t) = R(n, wn (u(t))u(t)ψ1)R(m,(1wn (u(t)))(u(t) 1)ϕ2 )q1, (8.23)

где

u(t) = t t2 t3 t2

для t [t2 ,t3].

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

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

Q1, значение узла t3 определяется из условия

t3 = t2 + (t2ϕt1) ϕ2. 1

Очевидно, что в этом случае параметризованная кривая r2 (t) имеет следующие граничные точки:

r2 (t2 ) = R(n,0)R(m,−ϕ2 )q1 = R(m,−ϕ2 )q1 = q1, r2 (t3) = R(n,ψ1)R(m,0)q1 = R(n,ψ1)q1 = q2.

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

ψ2 = Q2OP3,

используя формулу (8.15).

2. Генерируем параметризованную кривую

r3(t) = R(n,u(t)ψ2 )q2 ,

(8.24)

где

 

 

 

 

u(t) =

t t3

 

t

4

t

 

 

 

 

3

 

 

для t [t3, t4 ].

186

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

t4 = t3 + (t3ψt2 ) ψ2. 1

Очевидно, что в этом случае параметризованная кривая r3(t) имеет следующие граничные точки:

r3(t3) = R(n,u(t3)ψ2 )q2 = R(n,0)q2 = q2, r3(t4 ) = R(n,u(t4 )ψ2 )q2 = R(n,ψ2 )q2 = p3.

Тогда параметризованная кривая r(t) при t [t1,t4 ] может быть определена следующим образом:

r(t) = ri (t),

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

1.Из равенств (8.22)–(8.24) следует, что параметризованные кривые ri (t) проходят через точки P1, Q1, Q2 и P3.

2.Из теоремы 1, доказанной в разделе 8.7, следует, что параметризо-

ванная кривая r(t) имеет n-ю степень непрерывности, т. е. r(t) Cn.

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

жду ортонормальными системами координат с центром в сфере S 2. Следовательно, параметризованная кривая r(t) удовлетворяет всем

сформулированным в разделе 8.5 требованиям.

Глава 9

МОДЕЛИРОВАНИЕ СПЛАЙН-КРИВЫХ НА СФЕРЕ S3

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

Материал, изложенный в данной главе, базируется на работах автора [42, 44–46]. Другие подходы к моделированию ориентаций твердого тела изложены в публикациях [43, 65–78]. Можно отметить работу [73], в которой ориентационные сплайн-кривые также моделируются посредством деформации ориентационных дуг. Но эта работа отличается от предлагаемого подхода как концептуально, так и технически.

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

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

9.1. Постановка задачи построения ориентационной сплайн-кривой

Рассмотрим сферу S3, которая описана каноническим уравнением w2 + x2 + y2 + z2 =1

188

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

точек (P1, P2, ..., Pk ), лежащих на поверхности сферы S3. Причем предполагается, что эта последовательность содержит более трех точек, т. е.

k > 3.

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

1. Нужно построить параметризованную кривую R(t), которая лежит на поверхности сферы S3 и проходит через точки Pi для всех i {1, 2, ..., k}. В этом случае говорят, что параметризованная кривая R(t) интерполирует точки Pi.

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

т. е. иметь непрерывные производные до порядка n включительно.

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

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

Параметризованная кривая R(t), удовлетворяющая перечисленным выше требованиям, будет называться интерполяционным сплайном на по-

верхности сферы S3.

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

стей сферы S3 , каждая из которых проходит через три соседние точки последовательности (P1, P2, ..., Pk ).

9.2. Построение дуг малых окружностей по ориентациям

Рассмотрим три различные ориентации, которые представлены единичными кватернионами P1, P2 и P3. Определим дугу ориентационной

окружности, которая проходит через эти ориентации, начиная от ориентации P1, проходя через оринтацию P2 и заканчиваясь в ориентации P3.

Для этой цели, используя векторное произведение кватернионов, определим единичный кватернион

H =

P1 × P2 × P3

 

,

 

|

 

| P

× P

× P

 

 

1

3

3

 

 

который, как было показано в разделе 2.9, перпендикулярен единичным кватернионам P1, P2 и P3. После этого определим единичные кватер-

нионы Ri , которые удовлетворяют равенствам

189

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]