Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Curves.doc
Скачиваний:
51
Добавлен:
01.09.2019
Размер:
4.51 Mб
Скачать

Параметризация По Длине Дуги

Так как разные параметрические виды одной и той же кривой могут давать разные результаты, вы, конечно, захотите спросить: какого фига? Точнее, вы спросите: есть ли такая параметризация, которой можно доверять всегда? Я отвечу: да, есть. Математики уже это давным-давно решили и пошли пить пиво. Они придумали использовать длину дуги в качестве параметра.

Пусть отрзок прямой имеет длину s. Можно параметризовать эту кривую так, что f(u) будет обозначать точку, имеющую расстояние u от начальной f(0), где u между 0 и s. С такой параметризацией с помощью длины дуги, когда u изменяется от 0 до s, f(u) движется по кривой от f(0) до f(s) с постоянной скоростью. Таким образом, касательный вектор, показатель скорости, является единичным. И не только это, много формул упрощается.

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

Так что ну ее нафиг, эту параметризацию по длине дуги. Не будем ее юзать, и так проживем.

Геометрическая Непрерывность

Многие из C1 непрерывных кривых непрерывны по кривизне, но не C2 в точке перехода, а некоторые из них даже и не дифференцируемы дважды. Они выглядят гладко в точке перехода, а также при переходе от одного отрезка к другому. Более того, как упоминалось ранее, после замены переменных, некоторые из них могут стать C2 в точке перехода. Но такую параметризацию еще фиг найдешь. Так что мы сделаем отступление, изменим формулировку C2:

Два отрезка кривых называются Gk геометрически непрерывными в точке перехода тогда и только тогда, когда все i-ые производные, i <= k, вычисляемые с помощью параметризации по длине дуги, равны в точке перехода.

Блин, опять эта длина дуги. Да ладно, не обращай внимания, прилежный читатель 8-], все будет ОК. Вот тебе нормальное определение:

Два отрезка кривых называются Gk геометрически непрерывными тогда и только тогда, когда существует две параметризации, по одной на отрезок, причем такие, что все i-ые производные, i <= k, вычисляемые с помощью этих параметризаций, равны в точке перехода.

Хорошо конечно, но все равно как-то хреново. Как эти параметризации-то искать? К счастью, случаи k = 1 и k = 2 очень просты. Начнем с случая k=1.

Два C0 отрезка кривых называются G1 геометрически непрерывными в точке перехода тогда и только тогда, когда векторы f'(u) и g'(v) направлены в одну сторону в точке перехода. Заметьте, f'(u) и g'(v) вычисляются в точке перехода.

Так как касательные векторы в точке перехода направлены в одну сторону, кривые имеют общую касательную. Тем не менее, обратное не верно. Точнее, то, что два отрезка кривых имеют общую касательную, еще не значит, что они G1-непрерывны в точке перехода. На следующем рисунке, кривые f(u) и g(v) имеют общую точку, в которой у них общая касательная. Тем не менее, касательные векторы направлены в разные стороны, и в итоге отрезки не G1 в точке перехода. По такому определению, все кривые из примеров - G1 в точках перехода.

G. Neilson нашел очень простую формулу для непрерывности G2 :

Два C1 отрезка кривых называются G2 геометрически непрерывными в точке перехода тогда и только тогда, когда вектор f''(u) - g''(v) параллелен касательному в точке перехода. Заметьте, f''(u) и g''(v) вычисляются в точке перехода.

Красота этой формулировки в том, что не важно, какую параметризацию вибирать. Но перед этим надо проверить на непрерывность C1.

Вот пример, иллюстрирующий это. Возьмем следующие отрезки парабол, сходящиеся в точке ( 0, 1, 0):

f(u) = ( -1 + u2, 2u - u2, 0 ) g(v) = ( 2u - u2, 1 - u2, 0 )

Оба отрезка имеют интервал [0, 1]. Точка перехода f(1) = g(0) = ( 0, 1, 0 ).

Вот вычисления:

f'(u) = ( 2u, 2 - 2u, 0 ) f''(u) = ( 2, -2, 0 ) f'(u) × f''(u) = ( 0, 0, -4 ) | f'(u) | = 2SQRT(1 - 2u + 2u2 ) | f'(u) × f''(u) | = 4 k(u) = 1/(2(1 - 2u + 2u2)1.5) g'(v) = ( 2 - 2v, -2v, 0 ) g''(v) = ( -2, -2, 0 ) g'(v) × g''(v) = ( 0, 0, -4 ) | g'(v) | = 2SQRT(1 - 2v + 2v2 ) | g'(v) × g''(v) | = 4 k(v) = 1/(2(1 - 2v + 2v2)1.5)

Из f'(1) = g'(0) = ( 2, 0, 0 ), получаем, что эти два отрезка C1 в точке перехода. Так как f''(1) = ( 2, -2, 0 ) не равно g''(0) = ( -2, -2, 0 ), они не C2. Но, так как функции их кривизны одинаковы, можно ожидать, что переход в точке соединения будет гладким.

Проверим на G2. Так как кривые C1, стоит проверить их на G2. Так как f''(1) - g''(0) = ( 4, 0, 0 ) параллелен касательному вектору ( 2, 0, 0 ) в точке перехода, эти отрезки G2 непрерывны в точке перехода ( 0, 1, 0 ).

По определению Gk, можно найти две параметризации, не обязательно по длине дуги, такие, что заново параметризованные отрезки будут C2.

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