УДК 514.758.2 (004.438)
ББК 22.151.5
© Г.З. Очирова
Бурятский государственный университет E-mail:g06 @ mail. ru
Кинематический способ нахождения полной кривизны плоской кривой
Статья посвящена нахождению полной кривизны плоской кривой с использованием законов перемещения Т ортилы - исполнителя команд среды FMSLogo. Этот способ называется кинематическим. В статье приведены примеры нахождения полной кривизны окружности, включая листинг программы, а также «простых» кривых, таких как кардиоида и астроида, кривой с самопересечением, лемниската Бернулли и незамкнутые кривые, синусоида и парабола.
Ключевые слова: полная кривизна, дискретная дифференциальная геометрия, отображение Гаусса, вписанная ломаная, индекс вращения, Лого, FMSLogo, черепашка Тортила, кинематический способ, окружность, астроида, кардиоида, лемниската Бернулли, синусоида, парабола.
© G.Z. Ochirova
Buryat State University.
E-mail: [email protected]
The kinematic method of determining the total curvature of a plane
The article is devoted to determining of the total curvature of a plane curve, using a method based on the movement laws of turtle Tortilla - an executor of commands of FMSLogo environment. This method is called kinematic. The article contain the examples of determining the total curvature of the circle, including the listing of the program, as well as "simple" curves, such as cardioid and Astroid, self-intersecting curve, lemniscate of Bernoulli, and closed curves - sine wave and parabola.
Key words: total curvature, discrete differential geometry, Gauss map, inscribed polygon, turning number, Logo, FMSLogo, turtle Tortila, kinematic method, circle, astroid, cardioid, Bernoulli lemniscate, sine, parabola.
Введение
На стыке дифференциальной и дискретной геометрии в последние десятилетия появилась новая область - дискретная дифференциальная геометрия. В то время как в классической дифференциальной геометрии исследуются гладкие геометрические объекты, дискретная дифференциальная геометрия изучает геометрические объекты, образованные конечным количеством простейших элементов, и ставит целью разработку дискретных эквивалентов понятий и методов классической дифференциальной геометрии. Последняя, в свою очередь, вновь возникает как непрерывный предел своей дискретизации при стремлении к нулю размеров дискретных ячеек. Данная область геометрии вызывает интерес не только важными теоретическими приложениями, но и своими связями с компьютерной графикой.
Дискретные объекты могут быть измерены (длина, площадь и т.п.) и могут взаимодействовать с другими дискретными объектами (сочетание/взаимодействие). Одним из важных свойств кривых и поверхностей является кривизна, с которой в дифференциальной геометрии связано множество теорем. В этой статье мы рассмотрим полную кривизну дискретных кривых на плоскости, вычисляя её в среде программирования FMS Logo.
Классическими достижениями дискретной дифференциальной геометрии являются фундаментальные результаты А. Д. Александрова [7] и А.В. Погорелова [9]. Ранний период
развития отражен в работах Зауэра [6]. Работы А.И. Бобенко и У. Пинкаля [1], [2], А. Доливы и П.М. Сантини [3], [4] положили начало современному периоду.
Геометрия плоской кривой Рассмотрим плоскую кривую: если она является достаточно гладкой, то предельное положение секущей PQ называется касательной (рис. 1). Из всех прямых, проходящих через Р, касательная - локальная аппроксимация кривой в данной точке.
Рис. 1 Касательная к кривой в точке Р Направляющий вектор касательной к кривой в точке P(t) будет вектор г’(0. Если ^ -
dr
= — - единичный вектор касательной. ds
d2 г ds2
кривизна данной кривой. Геометрически вектор кривизны можно рассматривать как скорость вращения касательной - направление и резкость изгиба кривой. Для плоских кривых можно различать направление вращения касательной при движении вдоль кривой, поэтому кривизне можно приписывать знак в зависимости от направления этого вращения, отрицательный, если вращение по часовой стрелке.
В 1825 г. Карл Ф. Гаусса представил новый инструмент для осмысления формы кривых и поверхностей. Идея Гаусса состоит в отображении кривой на единичную окружность: для любой точки P принадлежащей кривой в отображении Гаусса - единичной окружности, присваивается точка Q, а именно точка, для которой радиус-вектор коллинеарен с вектором нормали в точке Р (рис. 2). Отметим, что нормаль в Р параллельна с радиусом окружности и касательная к кривой в точке Р параллельна касательной к окружности в Q. Свойства касательной и параллельности используются для упрощения важных определений в дифференциальной геометрии.
Рис. 2. Отображение Г аусса присваивает каждой точке на кривой соответствующую точку на единичной окружности Рассмотрим образ кривой при отображении Г аусса: образом кривой является объединение всех точек на единичной окружности, соответствующих всем точкам на
dt d2 г
Вектор — = —— называется вектором кривизны кривой, а его длина k^) ds ds
естественный параметр кривой, то вектор t(5)
заданной кривой. Для «открытых» кривых отображением Гаусса могут быть дуги или единичные окружности. Для замкнутой плоской кривой: образ всегда единичная окружность. Если кривая самопересекается, то мы можем подсчитать, сколько раз изображение полностью «обтекает» единичную окружность: это число поворотов или индекс вращения, обозначается ^ Индекс равен единице, если кривая простая и замкнутая, с поворотом против часовой стрелки. Она равна нулю или ± 2 для кривой, которая самопересекается один раз, в зависимости от способа поворота и от наличия или отсутствия витков (рис.З).
+1 -1 +2 0
Рисунок 3 Верхний ряд: Две простые кривые с противоположными способами обхода, и две самопересекающиеся кривые, одна из которых "отменяет" поворот. Нижний ряд: гауссовское изображение кривых и связанные с поворотами индексы вращения
Неважно, сколько изгибов совершает кривая, если мы не изменим число поворотов, то не изменится полная кривизна.
b
|k(s)ds = 2nk . (1)
a
Чтобы изменить полную кривизну кривой нужно скорректировать кривую путем введения (или удаления) самопересекающихся петель.
Геометрия дискретной плоской кривой
Пусть дана плоская кривая г, аппроксимируем её вписанной ломаной p. Вписанной ломаной называется последовательность вершин, V], У2,...Уп, отсортированных по обходу кривой, и отрезков, соединяющих соседние вершины (рис.4).
Полная кривизна (дискретная) вписанной ломаной вычисляется по формуле:
п
tsc(p) = ^ а,
i=0
где а - это угол поворота вершины Vi, взятый со знаком «-», если поворот по часовой стрелке (рис.5); если р - незамкнутая ломаная, то а0 = ап = 0. Опять же мы можем выразить полную кривизну непрерывной кривой, вычисляя предел по возможным вписанным ломаным: tsr (г) = sup tsr (p).
p ——Г
Способ нахождения полной кривизны, использующий верхний предел, не очень хорошо подходит для вычислений. Построим бесконечную последовательность вписанных ломаных pi, р2, р3..
Определим геометрический размер сетки р по длине его максимального отрезка:
h( p) = max d (V¡, V +1).
0<i< n
Предположим, что r является гладкой простой кривой. Гладкость подразумевает, что для каждой точки на кривой имеется уникальная вполне определенная касательная. Тогда
можно показать, что данная последовательностьр1, р2, р3...такая, что tsr(r) = lim tsr(p) .
h (p )^0
Рассмотрим отображение Гаусса для замкнутой ломаной р. Каждая вершина ломаной имеет две касательные (таким образом, и две нормали), в зависимости от направления, из которого берется предел. Определим отображение Гаусса р путем назначения для каждой вершины Vi дуги на единичной окружности, концами которой являются две нормали. Каждая точка принадлежащая ребру, отличная от вершины, имеет единственную нормаль и соответствует в гауссовом изображении началу или концу дуги, соответствующей соседним вершинам. Способ обхода вдоль ломаной соответствует способу обхода вдоль дуги гауссова изображения. При этом индекс вращения для гладкой плоской кривой переносится естественным образом на дискретные аналоги.
Проверим теорему об индексе вращения для дискретных кривых. Сумма внешних углов простого многоугольника 2ж. Это замечание может быть обобщено, чтобы показать, что tcr(p)=2nk, где k индекс вращения ломаной. Подчеркнем, что теорема не утверждает, что полная кривизна сходится к числу, кратному 2п в пределе для ломаной, теорема справедлива для любого (сколь угодно грубого) многоугольника. Однако следует отметить, что индексы вращения для кривой и ломаной могут не совпадать, по крайней мере, пока вершин недостаточно много (в нужных местах) для оценки топологии кривой.
Кинематический способ нахождения полной кривизны плоской кривой
Рассмотрим нахождение полной кривизны некоторых кривых в среде программирования FMS Logo.
Пусть кривая r - это окружность, заданная уравнением x=cost, y=sint, t € [0;360].
Впишем ломаную, имеющую 10 вершин, и составим список, состоящий из координат данной кривой.
это таб пусть "pol [ ]
для [t 0 360 36][вочередь "pol список произведение 100 cos :t произведение 100 sin :t] вд :pol
конец
Далее находим полную кривизну как сумму углов поворота ребер ломаной. Процедура для нахождения полной кривизны окружности:
это кривизна пусть "pol таб Пусть "ug [] пп
для [t 1 11 1][нм элемент :t :pol по жди 5]
пп для [t 1 10 1][нм элемент :t :pol вочередь "ug внаправ элемент сумма :t 1 :pol новыйкурс элемент :t :ug жди 45] пусть "k 0 пусть "ug1 []
повтори 9[вочередь "ug1 разность элемент сумма счетчик 1 :ug элемент счетчик :ug] пусть "k 0
повтори 9 [пусть "k сумма :k Элемент счетчик :ug1] пш сумма :k разность элемент 1 :ug сумма элемент 10 :ug 360 конец
покажи :ug
[342 306 270 234 198 162 126 90 54 18]
В списке :ug углы, образуемые ребрами многоугольника с осью Oy. покажи :ug1
[-36 -36 -36 -36 -36 -36 -36 -36 -36]
В списке :ug1 углы поворота Тортилы в вершинах многоугольника.
При вызове процедуры <кривизна> получаем результат -360, при этом видно, как поворачивается Тортила, рисуя многоугольник (рис.6).
Рис. 6 Дискретная окружность
Т.к. поворот осуществляется против часовой стрелки, следовательно, результат получается с отрицательным знаком.
Индекс вращения окружности равен единице (знак выбирается в зависимости от способа обхода), следовательно, согласно формуле (1) полная кривизна окружности равна 360.
В таблице 1 показаны результаты вычисления полной кривизны некоторых замкнутых кривых (строки 1-3) в среде программирования БМ8 Logo.
Если кривая не замкнута, то, применяя процедуру, используемую для окружности, можно вычислить полную кривизну таких кривых. Например, для синусоиды, заданной
п
уравнением у = 100 х, полная кривизна оказывается равной нулю. А если
рассмотреть параболу у = х , полная кривизна равна -176.143199 (строки 4, 5 табл.1).
№ Название Полная кривизна Индекс вращения Изображение
1 Кардиоида Г х = 100cos t (1 + cos t) [ у = 100sin t (1 + cos t) -360 1 О
2 Астроида J х = 100cos31 J у = 100sin31 -360 1 <()>
3 J < 1емниската Бернулли t +13 х = 100 4 1+14 t -13 у = 100—4 1 +1 0 0 оо
4 Синусоида у = 100sin х 180 0 / V/
5 Парабола у = х2 -176.143199 f
Литература
1. Bobenko A. I., Pinkall U., «Discrete isothermic surfaces», J. Reine Angew. Math., 475 (1996), 187-208.
2. Bobenko A. I., Pinkall U., «Discrete surfaces with constant negative Gaussian curvature and the Hirota equation», J. Differential Geom., 43:3 (1996), 527-611.
3. Cie.sli.nski J., Doliwa A., Santini P. M., «The integrable discrete analogues of orthogonal coordinate systems are multi-dimensional circular lattices», Phys. Lett. A, 235:5 (1997), 480-488.
4. Doliwa A., Santini P. M., «Multidimensional quadrilateral lattices are integrable», Phys. Lett. A, 233:4-6 (1997), 365-372.
5. Grinspun E., Secord А., «Introduction to discrete differential geometry: The geometry of plane curves»,SIGGRAPH (ACM Transactions on Graphics), P.1-5, 2008.
6. R. Sauer, Differenzengeometrie, Springer-Verlag, Berlin, 1970.
7. Александров А.Д., Выпуклые многогранники. М.-Л: Гостехиздат, 1950.
8. Бакельман И.Я., Вернер А.Л., Кантор Б.Е. Введение в дифференциальную геометрию «в целом».-М.: Наука, 1973.
9. Погорелов А.В. Внешняя геометрия выпуклых поверхностей. М.: Наука, 1969.
10. Энциклопедия элементарной математики книга третья (функции и пределы, основы анализа) под ред. Александрова П.С., Маркушевича А.И., Хинчина А.Я. М.-Л.: Изд-во ГТТИ, 1952. - 559 c.