2019, Т. 161, кн. 4 С. 591-605
УЧЕНЫЕ ЗАПИСКИ КАЗАНСКОГО УНИВЕРСИТЕТА. СЕРИЯ ФИЗИКО-МАТЕМАТИЧЕСКИЕ НАУКИ
ISSN 2541-7746 (Print) ISSN 2500-2198 (Online)
УДК 514.132.01:519.688 <!ок 10.26907/2541-7746.2019.4.591-605
РЕГУЛЯРНОЕ ЗАМОЩЕНИЕ ПЛОСКОСТИ ЛОБАЧЕВСКОГО
П.И. Трошин
Казанский (Приволжский) федеральный университет, г. Казань, 420008, Россия
Аннотация
Работа посвящена изучению комбинаторно-топологического устройства регулярных замощений плоскости Лобачевского (правильными многоугольниками) и описанию нового алгоритма построения таких замощений. Актуальность исследования определяется, с одной стороны, непрекращающимся интересом к гиперболической геометрии, и в частности, к замощениям в ней, а с другой - недостаточностью имеющихся описаний алгоритмов и их реализаций.
Для построения протоплитки и слоев замощения используются группа движений модели Бельтрами - Клейна (повороты и параллельные переносы), тригонометрия плоскости Лобачевского, изометрии с другими моделями этой плоскости. Замощение разделяется на слои, а слои - на подклассы плиток, устройство каждого слоя зависит от предыдущего.
Предложен алгоритм регулярного замощения плоскости Лобачевского, при котором замощение строится послойно, без повторения плиток, путем применения собственных движений к единственной исходной протоплитке; алгоритм реализован в виде псевдокода и в системе компьютерной алгебры Wolfram Mathematica; найдены формулы для подсчета количества плиток в слоях при таком построении замощения.
Полученные результаты и наблюдения могут быть полезными при построении регулярных замощений в гиперболической геометрии.
Ключевые слова: регулярное замощение, покрытие, плоскость Лобачевского, гиперболическая геометрия, символ Шлефли, группа движений, модель Бельтрами-Клейна, плитка, протоплитка
Введение
Замощение плоскости - покрытие ее без дыр и существенных пересечений (не более чем по границам множеств) фигурами из заранее выбранного класса, обычно многоугольниками. В случае многоугольников их вершины называют вершинами замощения, стороны - ребрами, а внутренности - гранями (плитками) по аналогии с планарными графами. В нашей работе мы ограничимся исторически первыми и самыми простыми замощениями - регулярными.
Обозначим замощение плоскости правильными р-угольниками с кратностью вершин ц (количество ребер в одной вершине) символом Шлефли {р, д} (такие
замощения называют регулярными). Заметим, что на евклидовой плоскости из ну-
111
левого дефекта треугольника следует, что — + — = —, чему удовлетворяют лишь за-
Р Ц 2
мощения {3, 6}, {6, 3} и {4, 4} (треугольниками, шестиугольниками и квадратами соответственно). Положительный дефект треугольника в геометрии Лобачевского влечет необходимое для замощения неравенство
111
Р + 7,< 2 (1)
(произвольный выпуклый p-угольник можно разбить на p — 2 треугольника, то-
2П
гда сумма его внутренних углов p— < (p — 2)п, что влечет (1)). Неравенству (1)
q
удовлетворяют все пары натуральных чисел p,q > 3, кроме {3, 3}, {3, 4}, {3, 5}, {3, 6}, {4, 3}, {4,4}, {5, 3}, {6, 3}. Это позволяет строить в геометрии Лобачевского регулярные замощения, невозможные для евклидовой геометрии (рис. 1).
Э. Пуанкаре написал одну из первых работ, связанных с замощениями гиперболической плоскости [1], предложив групповой подход. Графическое построение замощений приобрело особую популярность после работ художника-графика М.К. Эшера, который консультировался с Г.С.М. Коксетером о применении циркуля, линейки и транспортира в модели Пуанкаре [2-4]. Основы теории замощений неевклидовых пространств описаны в книгах [5, 6]. Групповой и комбинаторный подходы используются и в построении замощений с использованием автоматических групп для создания списка преобразований без повторений [7, 8]. Алгоритм, предложенный в настоящей работе, наиболее близок к подходу Д. Данхема [9], согласно которому замощение строится послойно. В настоящее время гиперболическая геометрия продолжает развиваться: например, она активно применяется в теории коммуникаций, в частности, замощения используются в квантовых кодах коррекции ошибок [10]. Новые результаты о замощениях 8-, 10- и 12-угольниками представлены в [13], несчетное множество строго непериодических замощений получено в [14], эффективное построение замощений с использованием раскрашивания и мотива рассматривается в [15, 16].
Мы будем использовать группу движений плоскости Лобачевского для получения плиток регулярного замощения из исходной протоплитки (правильного p-угольника). Для определенности всюду дальше рассматривается модель Бель-трами-Клейна плоскости Лобачевского (с константой кривизны 1), состоящая из открытого шара B(0, 1) С R2 радиуса 1 с центром в начале координат 0(0,0) евклидовой плоскости, снабженного метрикой Лобачевского p(x, у) = 1 — (x, у)
= Arch -—' . Здесь (•, •) - скалярное произведение в R2, a2 = (a, a),
1 — x2 1 — у2
|a| = \J(a, a), a G R2 , при этом \x\ = th p(0,x). Обозначим получаемое при этом метрическое пространство Л2 = (B(0,1),p). В модели Бельтрами - Клейна геодезические линии - прямолинейные отрезки.
Группа собственных движений плоскости Л2 порождается перобразованиями двух видов [11]:
• U^(x) - оператор поворота вектора x на угол ф вокруг начала координат:
и» (x) = (cos ф —сОФ) x (2)
• 9a(x) - оператор параллельного переноса вектора x на вектор a = 0:
((а, х)(1 — \/1 — а2) + а2)а + а2л/1 — а2х 9а(х) = а2(1 + (а,х)) • (3)
В дальнейшем нам понадобится еще операция поворота вектора х на угол ф вокруг точки а, очевидно, она задается следующей композицией:
иф,а (х) = 9а ◦ Иф О 9-а(х)• (4)
Для построения замощений в других известных моделях плоскости Лобачевского достаточно воспользоваться соответствующими изометриями. Например,
Рис. 1. Примеры регулярных замощений {4, 5} плоскости Л2
Рис. 2. Пример замощения {4, 5} в модели Пуанкаре в круге (слева) и в модели Пуанкаре в верхней полуплоскости (справа)
отображает Л2 в модель Пуанкаре в круге, а (х1,х2) ^
1 + л/Г—X2
1
(хь 1 — X2) - в модель Пуанкаре в верхней полуплоскости (рис. 2).
1 + X2
В настоящей работе мы приводим алгоритм построения замощения Л2, основанный на применении группы движений этой плоскости к исходной прото-плитке. Плоскость покрывается набором плиток последовательно от центра модели к окружности абсолюта.
1. Устройство регулярного замощения
Для построения регулярного замощения нам понадобятся предварительные факты о его геометрии.
В лемме 1 приводится связь между символами Шлефли {p, q} и метрическими характеристиками грани замощения.
Лемма 1. Для регулярного .замощения {p, q} плоскости Л2 радиус ( в метрике Лобачевского) описанной окружности плитки равен
( п п\
R = Arch ctg — ctg — . (5)
pq
Доказательство. Пусть CA1A2 - треугольник, образованный центром C p-угольника замощения и его любыми двумя смежными вершинами Ai и A2. Тогда по двойственной теореме косинусов [11]
cos ZCA1A2 = — cos ZA1CA2 cos ZCA2A1 + sin ZA1CA2 sin ZCA2A1 ch CA2,
п 2п п 2пп
cos — = — cos — cos —+ sin — sin — ch CA2,
q p q p q
откуда получаем требуемое равенство для R = CA2 . □
Рис. 4. Слои Fi, F2 , F3 и их объединение O3 на примере замощения {5, 5}
Как можно заметить на рис. 1 (и обосновать формулой (5)), с ростом p и q размер грани растет и на изображении замощения сложно разглядеть детали вблизи абсолюта. Для большей наглядности в этом параграфе рисунки искажены применением к вершинам замощения преобразования сжатия к центру
x
x ^ -—- th(0.2Arth |x|), после чего получившиеся новые вершины были соедине-\x\
ны отрезками (см. для примера рис. 3).
Для определенности в настоящей работе мы рассмотрим замощения {p, q}, одна из вершин которых совпадает с центром O модели Л2 (рис. 4). Введем следующие обозначения. Слоем Fi назовем набор из q различных плиток с общей вершиной O. Слоем Fn+i, n > 1, назовем плитки, имеющие общую вершину с одной или двумя плитками из Fn, но не принадлежащие этому слою. Таким образом, за-
оо
мощение плоскости Л2 есть У Fi (дизъюнктное объединение). Обозначим также
i=i
n
On = У Fi, n > 1. Пусть ^n+i (wedges) - грани из Fn+i, имеющие одну общую
i=i
вершину с гранями из Fn, а Hn+i (hills) - грани из Fn+i, имеющие общее ребро с гранями из Fn (обозначены серым цветом на рис. 4), n > 1. Остальные регулярные замощения получаются из описанного выше замощения с помощью группы движений плоскости Лобачевского.
Следующая лемма дает оценку роста количества плиток во множествах Fn и
10 01
On, n > 1. Пусть #(•) - мощность множества и E =
Лемма 2. Для регулярного замощения {p, q} обозначим
M =((P - 2)(q - 3) - 1 (p - 3)(q - 3) - 1 p - 2 p - 3
Рис. 5. Соответствие элементов из Тп элементам из Тп+1. Окрестности 03 замощений {5, 5} (вырезан сектор), {3, 7} , {7, 3}
тогда при д > 3
при д
#(Яп+1)
(#(^+1) \#(Нп+1)
При этом для п > 0
#(^п+1Л = м (#(^п) \#(Нп )
= ... = дМп
1
1
п— 1
р — 6 р — 5
#(^п+1) = д(1,1)Мп
р — 4
п > 0,
п > 1.
(6)
(7)
(8)
#(Оп+1) = д(1,1)(1 + М + • • • + Мп) ^0) = д(1,1)(Е — Мп+1)(Е — М) —^0) . (9)
Доказательство. Пусть р > 3 (при этом д > 4). Рассмотрим рис. 5 (слева). Сопоставим каждой грани из Шп
(р — 3)(д — 3) граней из имеющих с ней общие вершины,
д — 4 граней из имеющих общую вершину с ней и с соседней гранью из Тп
I р — 2 граней из Нп+1, имеющих с ней общее ребро.
Каждой грани из Нп сопоставим
(р — 4)(д — 3) граней из имеющих с ней общие вершины,
д — 4 граней из имеющих общую вершину с ней и с соседней гранью из Тп
I р — 3 граней из Нп+1, имеющих с ней общее ребро.
Тогда, учитывая, что #(^1) = д, #(Н) = 0, получаем
#^п+1) #(Нп+1)
(р — 3)(д — 3) + д — 4 (р — 4)(д — 3) + д — 4\ (#(Шп)
р — 2
р — 3
#(Нп)
(р — 2)(д — 3) — 1 (р — 3)(д — 3) — 1\(#(Шп) р — 2 р — 3 М#(Нп)
= ... = Мп
п 0.
Пусть р = 3 (тогда д > 7, рис. 5 (по центру)). Каждой грани из Шп сопоставим д — 4 граней из ^п+1 (при этом дважды засчитаются #(Нп) граней) и одну грань
1
0
3
1
0
и
из Я„+1 .Значит, = (д - 4) -#(Я„), #(Яп+1) = , что также
соответствует формуле (6) при р = 3.
Займемся случаем д = 3 (тогда р > 7, рис. 5 (справа)). Аналогично предыдущим рассуждениям
#(^) = 3, #(Я1)=0, #(^2) = #(^1), #(Я2) = (р - 4)#(^1),
#(^„+1) = #(^п) + #(Я„), #(Я„+1) = (р - 6)#(^) + (р - 5) #(Я„), п > 2, откуда при п > 2
#(^„+1)А = А 1 1 N (#(^Л = ( 1 1 А"-1 (#№)'
#(Я„+1^ VP - 6 р - 5)\#(Яп)) \р - 6 р - 5) У#(Я2)у
(10)
1 1 У" ( 1 0Л (3Л =3( 1 1 А"-1 ( 1 А
р - 6 р - 5 р - 4 0 0 р - 6 р - 5 р - 4
Легко проверить, что полученная формула (7) верна и при п =1.
Докажем по индукции следующую вспомогательную формулу, являющуюся аналогом формулы (6) для случая д = 3:
- #(У2"#9ш ^=3М"(, п > 1. (11)
#(Яп+1 ) + 2#(^п+1И \0/
Здесь М = ( 1 1 , .
ур - 2 р - 3J
База индукции проверяется непосредственным подсчетом при п =1. Предположим, что формула (11) верна для п > 1, и покажем, что она верна и для п +1. Учтем (10), тогда при п > 1
#^п+2) = #(Шп+1)+#(Яп+1),
#(Я"+2) = (р - 6) #(N"+1) + (р - 5) #(Яп+1),
-#(^п+2) = #(N"+1) - (#(Яп+1) + 2#(^п+1)),
#(Яп+2)+2#(^п+2) = (р-6)#^п+1)+(р-5)#(Яп+1)+2(#^п+1)+#(Яп+1)) =
= -(р - 2) #(^п+1) + (р - 3)(#(Яп+1) + 2#(^п+1)),
а значит,
( - #(^п+2) N = ( -1 -1 N ( - #(^п+1) ^#(Яп+2)+2#(^п+2^ ^р - 2 р - 3)\#(Яп+1)+2#(Шп+1)
-2 р--\) ^ й = 3Мп+^0) , п > 1,
что и требовалось доказать.
п
Поскольку Тп = Яп У Шп и Оп = У Тг, то из (6) следует (8) при д > 3,
г=1
а из (11) это же следует для д = 3. Заметим, что матрица Е - М обратима. В самом деле, определитель \Е - М \ = 2р + 2д - рд < 0 ввиду (1). □
Заметим, что, поменяв местами р и д в лемме 2, мы получим соответствующие формулы для двойственного замощения {д,р}, центр протоплитки которого совпадает с центром модели Л2 .
Полученные в лемме 2 результаты о связи элементов из слоев Тп и Тп+1 служат основой для алгоритма построения замощения в следующем разделе. Отметим работу [12], в которой также изучается рост граней, ребер и вершин в полуправильных замощениях.
2. Алгоритм замощения
Будем строить замощение последовательно, получая на каждой итерации с номером n = 1, 2,... слой Fn . Плитки слоя Fn+i будем получать поворотом плиток из слоя Fn вокруг их вершин. Основное требование к алгоритму - отсутствие повторяющихся плиток. Плитки замощения будем задавать и хранить в виде упорядоченного набора координат их вершин.
Как и в лемме 2, приходится рассмотреть общий случай p, q > 3 и два частных случая p = 3, q = 3. Во всех трех случаях разделим слои Fn на классы Wn и Hn, так как плитки из этих классов по-разному порождают (поворотом вокруг своих вершин) плитки из слоя Fn+i.
Слой Fi = Wi составим из q плиток с общей первой вершиной 0(0,0) и нумерацией вершин в грани против часовой стрелки (нижним индексом у грани будем обозначать вершину этой грани с данным номером). Практически это можно осуществить следующим образом. Воспользуемся преобразованиями (2)-(4). Согласно формуле (5) строим правильный p-угольник a с центром в 0(0,0):
a = {r (cos(2ni/p), sin^ni/p)}- , r = th (Arch (ctg (n/p) ctg (n/q))),
сдвигаем его на вектор —ai (тогда первая вершина совпадет с 0(0,0)) и поворотами получаем плитки из Wi (здесь U0i = U о ... о U обозначает i-кратную композицию):
U0i/q о Я-аг (a) е Wi, i = 0,. .. ,q — 1.
Полагаем Hi = 0 .
Построим слои Fn+i, n > 1, следующим образом.
2.1. Случай p, q > 3. Введем процедуру fan(f, i, к), строящую к + 1 (к = = q — 4, q — 3) плитку из Fn+i вокруг вершины f плитки f G Fn, и процедуру step(f, io), строящую плитки из Fn+i вокруг вершин fio,..., fp плитки f G Fn .
procedure fan(f, i, k)
=U
(f )
ai-i(vi, ...,vp) = (vi,. . .,vi-i)
Hn+i ^ u
for i = 1, ... ,k do
Wn+i ^ ^ = u2o
end for end procedure
/q,
, (u)
поворачиваем f вокруг ее вершины на угол 2п/д
делаем циклический сдвиг вершин полученной грани на г — 1 влево (чтобы первая вершина совпала с ) добавляем результат в массив Нп+1
поворачиваем и вокруг ее вершины и1 на угол 2пг/д и добавляем результат в массив ^п+1
v
u
procedure step(/, i0) for i = io,... ,p - 1 do
fan(/, i,q - 3) end for fan(/,p, q - 4) end procedure
Каждая грань w G Wn порождает (p - 2)(q - 3) - 1 граней из Wn+i и p - 2 граней из Hn+i процедурой step(w, 3).
Каждая грань h G Hn порождает (p - 3)(q - 3) - 1 граней из Wn+i и p - 3 граней из Hn+i процедурой step(w, 4).
Приведем реализацию предложенного алгоритма в пакете Wolfram Mathematica (версия 11.3.0.0) на Листинге 1.
Листинг 1. Случай p, q > 3. Код в пакете Wolfram Mathematica (11.3.0.0).
1 stage = 4;
2 p = 4;
3 q = 5;
4 P = 2. Pi/p; Q = 2. Pi/q;
5 G[x_, a_] := ((a.x+a.a)a+((a.a)x (a.x)a)Sqrt[1 a.a])/(a.a(1+a.x))
6 Rot0[x_, alpha_] := {{Cos[alpha], Sin[alpha]}, { Sin[alpha], Cos[alpha]}}.x
7 Rot[x_, a_, alpha_] := Map[G[Rot0[G[#, a], alpha], a] &, x]
8 fan[face_, i_, k_] := (
9 AppendTo[HTemp, faceO = RotateLeft[Rot[face, face[[i]], Q], i 1]];
10 For[a=1, a<=k, AppendTo[WTemp, Rot[face0, face0[[l]], a Q]]; a++]
11 )
12 step [Face_, i0_] := Do[
13 For[ i = iO , i <= p 1, fan [face , i , q 3]; i++];
14 fan [face, p, q 4],
15 {face, Face}
16 ]
17 If[1/p + 1/q < 0.5,
18 r = Tanh[ArcCosh[Cot[Q/2] Cot[P/2]]];
19 v = CirclePoints [{ r , 0}, p];
20 Hills = {{}};
21 Wedges = {NestList[Map[Rot0[#, Q] &, #] &, G[#, v[[1]]] & /@ v, q 1]};
22 For[st = 2, st <= stage,
23 HTemp = {};
24 WTemp = {};
25 step[ Hills [[st 1]], 4];
26 step [Wedges[[st 1]], 3];
27 AppendTo[Hills, HTemp];
28 AppendTo[Wedges, WTemp];
29 st++
30 ];
31 complex = Flatten[Hills~Join~Wedges, 1];
32 Show[Graphics[Circle []], Graphics[{Opacity [0.], EdgeForm[Thick], Polygon[complex]}]]
33 ]
Заметим, что алгоритм, предложенный выше для случая р, д> 3, можно применить и в случаях р = 3 и д = 3, однако при этом мы получим большое количество повторяющихся плиток.
2.2. Случай р = 3. Можно заметить, что при р = 3 плитки из Яп не порождают никаких плиток из Тп+1. Зато в классе Шп есть плитки, которые по-разному порождают плитки из Тп+1. Поэтому разобъем класс Шп на два класса: ^г и ^^ . Пусть Я1 = 0, = Ш1, а Ш? = 0.
Рассмотрим процедуру step(/, к), строящую к + 2 (к = д - 6, д - 5) плиток из Тп+1 вокруг вершины /3 плитки / € Тп.
procedure step(f, к)
v = U2n/q f3 (f) поворачиваем f вокруг ее вершины fs на угол
2n/q
u = 0-2(vi, V2, vs) = (vs, vi, V2) делаем циклический сдвиг вершин полученной
грани на 2 влево (чтобы первая вершина совпала с fs)
Hn+i ^ u добавляем результат в массив Hn+i
for i = 1, . . . , k do
Wn+i ^ sl = U%i/q ui (u) поворачиваем u вокруг ее вершины ui на угол
2ni/q и добавляем результат в массив Wn+i
end for
Wn+i ^ U2n/q (sk) поворачиваем sk вокруг ее вершины s\ на угол
end procedure
2n/q и добавляем результат в массив Wn+i
Каждая грань w G W 1 порождает q — 5 граней из W^+i, 1 грань из W2+1 и 1 грань из Hn+1 процедурой step(w, q — 5).
Каждая грань w G W2 порождает q — 6 граней из W^+i, 1 грань из W2+i и 1 грань из Hn+1 процедурой step(w, q — 6).
Приведем реализацию предложенного алгоритма в пакете Wolfram Mathematica (версия 11.3.0.0) на Листинге 2.
Листинг 2. Случай p = 3. Код в пакете Wolfram Mathematica (11.3.0.0).
1 stage = 4;
2 p = 3;
3 q = 7;
4 P = 2. Pi/p; Q = 2. Pi/q;
5 G[x_, a_]:=((a.x + a.a)a + ((a.a)x (a.x)a) Sqrt [1 a.a])/(a.a (1 + a.x))
6 Rot0[x_, alpha_] := {{Cos[alpha ], Sin[alpha ]}, { Sin [alpha], Cos[alpha]}}.x
7 Rot[x_, a_, alpha_] := Map[G[Rot0[G[#, a], alpha], a] &, x]
8 step [Face_, k_] := Do[
9 AppendTo[HTemp, face0 = RotateLeft[Rot[face, face[[3]], Q ], 3 1]];
10 For [a = 1, a <= k, AppendTo[W1Temp, Rot[face0, face0[[1]], a Q]]; a++];
11 AppendTo[W2Temp, Rot[face0, face0[[1]], (k + 1) Q]],
12 {face , Face}
13 ]
14 If[1/p + 1/q < 0.5,
15 r = Tanh[ArcCosh[Cot[Q/2] Cot[P/2]]];
16 v = CirclePoints [{ r , 0}, p];
17 Hills = {{}};
18 Wedges1 = {NestList[Map[Rot0[#, Q] &, #] &, G[#, v[[1]]] & /@ v, q 1]};
19 Wedges2 = {{}};
20 For[st = 2, st <= stage,
21 HTemp = {};
22 W1Temp = {};
23 W2Temp = {};
24 step [Wedges1[[st 1]], q 5];
25 step[Wedges2[[st 1]], q б];
26 AppendTo[Hills, HTemp];
27 AppendTo[Wedges1, W1Temp];
28 AppendTo[Wedges2, W2Temp];
29 st++
30 ];
31 complex = Flatten[Hills~Join~Wedges1~Join~Wedges2, 1];
32 Show[Graphics[Circle []], Graphics[{Opacity [0.], EdgeForm[Thick], Polygon[complex]}]]
33 ]
2.3. Случай д = 3. В этом случае нам будет достаточно классов Шп и Нп, однако закон построения слоев Тп+1 отличается при п = 1 и при п > 2.
Введем процедуру step(/, io,k), строящую плитки из Fn+i вокруг вершин /io,.. .,/k+i (k = p - 2,p - 1) плитки / G Fn .
procedure step(/, i0, k) for i = i0,... ,k do
v = U2n/q,fi (/)
u = a-i(vi, ...,vp) = (vi
Hn+1 ^ u end for
v = U2n/qJk+1 (f) u = (vb . . . ,Vp) = . .., vfc)
Wn+1 ^ u end procedure
поворачиваем / вокруг ее вершины /г на угол 2п/д , 1) делаем циклический сдвиг вершин полученной грани на г - 1 влево (чтобы первая вершина совпала с /г) добавляем результат в массив Яп+1
поворачиваем / вокруг ее вершины /и+1 на угол 2п/д
делаем циклический сдвиг вершин полученной грани на к влево (чтобы первая вершина совпала с /н+\) добавляем результат в массив Шп+1
Каждая грань w G Wi порождает 1 грань из Wn+i и p — 4 граней из Hn+i процедурой step(w, 4,p — 1).
Каждая грань w G Wn, n > 2, порождает 1 грань из Wn+i и p — 6 граней из Hn+i процедурой step(w, 5,p — 2).
Каждая грань h G Hn, n > 2, порождает 1 грань из Wn+i и p — 5 граней из Hn+i процедурой step(w, 5,p — 1).
Приведем реализацию предложенного алгоритма в пакете Wolfram Mathematica (версия 11.3.0.0) на Листинге 3.
Листинг 3. Случай q = 3. Код в пакете Wolfram Mathematica (11.3.0.0).
1 stage = 4;
2 p = 7;
3 q = 3;
4 P = 2. Pi/p; Q = 2. Pi/q;
5 G[x_, a_]:=((a.x + a.a)a + ((a.a)x (a.x)a) Sqrt [1 a.a])/(a.a (1 + a.x))
6 Rot0[x_, alpha_] := {{Cos[alpha ], Sin[alpha ]}, { Sin [alpha], Cos[alpha]}}.x
7 Rot[x_, a_, alpha_] := Map[G[Rot0[G[#, a], alpha], a] &, x]
8 RotateAndShift[face_, i_] := RotateLeft[Rot[face, face [[ i ]], Q], i 1]
9 step [Face_, i0_, k_] := Do[
10
11
12
For[i = i0, i <= k, AppendTo[HTemp, RotateAndShift[face, i]]; i++]; AppendTo[WTemp, RotateAndShift[face, k + 1]], {face , Face}
13 ]
14 If[1/p + 1/q < 0.5, r = Tanh[ArcCosh[Cot[Q/2] Cot[P/2]]]; v= CirclePoints [{ r , 0}, p]; Hills = {{}};
Wedges = {NestList[Map[Rot0[#, Q] &, #] &, G[#, v[[1]]] & /@ v, q 1]}; HTemp = {};
15
16
17
18
19
20 21 22
23
24
25
26
27
28 29
WTemp = {};
step [Wedges [[1]], 4, p 1]; AppendTo[Hills, HTemp]; AppendTo[Wedges, WTemp]; For[st = 3, st <= stage, HTemp = {}; WTemp = {}; step[ Hills [[st 1]], 5, step [Wedges[[st 1]], 5, AppendTo[Hills, HTemp];
1]; 2];
p
p
30
31
32
33
34
35 ]
AppendTo[Wedges, WTemp]; st++
];
complex = Flatten[Hills Join Wedges, 1]; Show[Graphics[Circle []], Graphics[{ Opacity [0.]
EdgeForm[Thick], Polygon[complex]}]]
Верные знаки после запятой 7000 Г 6000 5000 4000 3000 2000 1000
~Xv Количество построенных граней
Рис. 6. Падение точности вычислений при использовании двух разных алгоритмов: непрерывная линия - алгоритм из Листинга 1, пунктирная линия - алгоритм из замечания 2; р = 4, д = 5
Сделаем следующие замечания.
Замечание 1. Как следует из леммы 2, структуру слоев Тп также можно задать системой подстановок. При р, д > 3 эта система состоит из начального слова т.. .т и правил подстановки
w ^ hw . „ w ... hw . „ w hw .^.w,
q-3 q-3 q-4
hw .. .. hw .hw ..
q-3 q-3 q-4
P-2
P-3
При p = 3 - из начального слова wi .. .wi и правила
q
wi ^ h wi...w\ w2, w2 ^ h wi...w\ w2.
p—5 p-6
При q = 3 - из начального слова www, правила первой итерации w ^ h.. .h w,
p-4
правила последующих итераций
w ^ w' h ^ h . „ h w.
p-6 p-5
Кроме информации о типе грани в слое необходимо также контролировать расположение вершин внутри грани.
Замечание 2. Построение алгоритма замощения зависит от требований к задаче: экономичность, быстрота, точность, построение с помощью циркуля и линейки, получение результата в виде рисунка или набора граней и др. Здесь возникают проблемы экспоненциального роста задействованной памяти и падения точности вычислений вблизи абсолюта (к которому в евклидовой метрике близки уже элементы из F3). Так, рассмотренный нами другой алгоритм, в котором одна плитка поворачивается вокруг своих вершин (в соответствии с системой подстановок из замечания 1) и таким образом заметает весь слой, один за другим, перестает
1000
1500
h
работать уже при построении слоя F7, выдавая комплексные значения из-за падения точности вычислений, см. рис. 6.
Благодарности. Автор выражает благодарность рецензентам за замечания по стилю рукописи.
Работа выполнена при финансовой поддержке Российского фонда фундаментальных исследований (проект № 18-31-00295).
Литература
1. Poincare H. Theorie des groupes fuchsiens // Acta Math. - 1882. - V. 1. - P. 1-62.
2. Schattschneider D. The mathematical side of M.C. Escher // Not. AMS. - 2010. - V. 57, No 6. - P. 706-718.
3. Coxeter H.S.M. Regular compound tessellations of the hyperbolic plane // Proc. R. Soc. London, Ser. A. - 1964. - V. 278, No 1373. - P. 147-167. - doi: 10.1098/rspa.1964.0052.
4. Tennant R.F. Constructing tessellations and creating hyperbolic art // Symmetry: Cult. Sci. - 1992. - V. 3, No 4. - P. 367-383.
5. Magnus W. Noneuclidean Tesselations and Their Groups. - N. Y.: Acad. Press, 1974. -208 p.
6. Beardon A.F. The Geometry of Discrete Groups. - N. Y.: Springer, 1983. - 337 p.
7. Levy S. Automatic generation of hyperbolic tilings // Leonardo. - 1992. - V. 25, No 3. -P. 349-354. - doi: 10.2307/1575861.
8. Epstein D.B.A., Cannon J., Levy S., Holt D., Patterson M., Thurston W. Word Processing in Groups. - Boston: Jones Bartlett, 1992. - 352 p.
9. Dunham D. Hyperbolic symmetry // Comput. Math. Appl. - 1986. - V. 12, No 1-2, Pt. B. - P. 139-153. - doi: 10.1016/0898-1221(86)90147-1.
10. Albuquerque C.D., Palazzo R., Silva E.B. Topological quantum codes on compact surfaces with genus g > 2 //J. Math. Phys. - 2009. - V. 50, No 2. - Art. 023513, P. 1-20. - doi: 10.1063/1.3081056.
11. Сосов Е.Н. Геометрия Лобачевского и ее применение в специальной теории относительности. - Казань : Казан. фед. ун-т, 2016. - 84 с.
12. Firer M., Silva E.B. On the behavior of growth of polygons in semi-regular hyperbolic tessellations // Cogent Math. - 2017. - V. 4, No 1. - Art. 1302790, P. 1-10. - doi: 10.1080/23311835.2017.1302790.
13. Zamorzaeva E. Isohedral tilings by 8-, 10- and 12-gons for hyperbolic translation group of genus two // Bul. Acad. gtiinte Repub. Mold. Mat. - 2018. - No 2. - P. 74-84.
14. Ahara K., Akiyama Sh., Hayashi H., Komatsu K. Strongly nonperiodic hyperbolic tilings using single vertex configuration // Hiroshima Math. J. - 2018. - V. 48, No 2. - P. 133140. - doi: 10.32917/hmj/1533088825.
15. Ouyang P., Cheng D, Cao Y., Zhan X. The visualization of hyperbolic patterns from invariant mapping method // Comput. Graphics. - 2012. - V. 36, No 2 - P. 92-100. -doi: 10.1016/j.cag.2011.12.005.
16. Chen N., Chung K.W. Efficient generation of hyperbolic patterns from a single asymmetric motif // Fractals. - 2016. - V. 24, No 4. - Art. 1650043. - doi: 10.1142/S0218348X16500432.
Поступила в редакцию 11.03.19
Трошин Павел Игоревич, кандидат физико-математических наук, ведущий программист
Казанский (Приволжский) федеральный университет
ул. Кремлевская, д. 18, г. Казань, 420008, Россия E-mail: paul.troshin@gmail.com
ISSN 2541-7746 (Print) ISSN 2500-2198 (Online) UCHENYE ZAPISKI KAZANSKOGO UNIVERSITETA. SERIYA FIZIKO-MATEMATICHESKIE NAUKI (Proceedings of Kazan University. Physics and Mathematics Series)
2019, vol. 161, no. 4, pp. 591-605
doi: 10.26907/2541-7746.2019.4.591-605
Regular Tessellation of the Lobachevskii Plane
P.I. Troshin
Kazan Federal University, Kazan, 420008 Russia E-mail: paul.troshin@gmail.com
Received March 11, 2019 Abstract
This paper discusses a new algorithm for construction of regular tessellation of the Lobachevskii plane. The problems of combinatorial and topological arrangement of regular tessellations, finding the number of tiles in each layer of such tessellation, and implementation of the algorithm in the modern computer programming language were studied. The relevance of the study is determined, on the one hand, by the unceasing interest in hyperbolic geometry and, in particular, in tessellations within it. On the other hand, the relevance is due to the insufficient number of published algorithm descriptions and their implementations. The following methods were used:
- implementation of the basic knowledge in the group of motions of the Lobachevskii plane in the Beltrami-Klein model, its trigonometry and isometries to the other known models to construct a prototile and tessellation layers;
- splitting the tessellation by layers and layers by subclasses of tiles, studying the arrangement of each layer with respect to the previous one, finding the number of tiles in the layers with the help of mathematical induction;
- devising an algorithm in the form of a pseudocode and in the programming language of Wolfram Mathematica.
In the course of the study, the following results were obtained:
- an algorithm for regular tessellation of the Lobachevskii plane, which produces the tessellation layer by layer, without repetition of the tiles, by means of proper rigid motions applied to the initial prototile;
- the algorithm implemented in the programming language of Wolfram Mathematica;
- formulas for estimation of the number of tiles in layers for the suggested algorithm.
The obtained results and observations made in this paper are important for construction
of tessellations in hyperbolic geometry.
Keywords: regular tessellation, tiling, Lobachevskii plane, hyperbolic geometry, Schlafli symbol, group of motions, Beltrami-Klein model, tile, prototile
604
n.H. TPomHH
Acknowledgments. We thank the reviewers for their constructive and helpful feedback on the style of the manuscript.
The study was supported by the Russian Foundation for Basic Research (project no. 1831-00295).
Figure Captions
Fig. 1. Examples of regular tessellations {4, 5} of plane A2 .
Fig. 2. Example of tessellation {4, 5} in the Poincare disk model (on the left) and in the Poincare upper half-plane model (on the right).
Fig. 3. Tessellation {5, 5}: original and distorted presentation.
Fig. 4. Layers F1, F2 , and F3 and their union O3 exemplified by tessellation {5, 5}.
Fig. 5. Correspondence of elements from Fn to elements from Fn+1. Neighborhood O3 of tessellations {5, 5} (cut-out sector), {3, 7} , {7, 3}.
Fig. 6. Decrease in the accuracy of calculations when two different algorithms are used: solid line - algorithm from Listing 1, dashed line - algorithm from Remark 2; p = 4, q = 5.
References
1. Poincare H. Theorie des groupes fuchsiens. Acta Math., 1882, vol. 1, pp. 1-62. (In French)
2. Schattschneider D. The mathematical side of M.C. Escher. Not. AMS, 2010, vol. 57, no. 6, pp. 706-718.
3. Coxeter H.S.M. Regular compound tessellations of the hyperbolic plane. Proc. R. Soc. London, Ser. A, 1964, vol. 278, no. 1373, pp. 147-167. doi: 10.1098/rspa.1964.0052.
4. Tennant R.F. Constructing tessellations and creating hyperbolic art. Symmetry: Cult. Sci., 1992, vol. 3, no. 4, pp. 367-383.
5. Magnus W. Noneuclidean Tesselations and Their Groups. New York, Acad. Press, 1974. 208 p.
6. Beardon A.F. The Geometry of Discrete Groups. New York, Springer, 1983. 337 p.
7. Levy S. Automatic generation of hyperbolic tilings. Leonardo, 1992, vol. 25, no. 3, pp. 349354. doi: 10.2307/1575861.
8. Epstein D.B.A., Cannon J., Levy S., Holt D., Patterson M., Thurston W. Word Processing in Groups. Boston, Jones Bartlett, 1992. 352 p.
9. Dunham D. Hyperbolic symmetry. Comput. Math. Appl., 1986, vol. 12, nos. 1-2, pt. B, pp. 139-153. doi: 10.1016/0898-1221(86)90147-1.
10. Albuquerque C.D., Palazzo R., Silva E.B. Topological quantum codes on compact surfaces with genus g > 2. J. Math. Phys., 2009, vol. 50, no. 2, art. 023513, pp. 1-20. doi: 10.1063/1.3081056.
11. Sosov E.N. Geometriya Lobachevskogo i ee primenenie v spetsial'noi teorii otnositel'nosti [Lobachevskii Geometry and Its Application in Special Relativity Theory]. Kazan, Kazan. Fed. Univ., 2016. 84 p. (In Russian)
12. Firer M., Silva E.B. On the behavior of growth of polygons in semi-regular hyperbolic tessellations. Cogent Math., 2017, vol. 4, no. 1, art. 1302790, pp. 1-10. doi: 10.1080/23311835.2017.1302790.
13. Zamorzaeva E. Isohedral tilings by 8-, 10- and 12-gons for hyperbolic translation group of genus two. Bul. Acad. iptiin^e Repub. Mold. Mat., 2018, no. 2, pp. 74-84.
14. Ahara K., Akiyama Sh., Hayashi H., Komatsu K. Strongly nonperiodic hyperbolic tilings using single vertex configuration. Hiroshima Math. J., 2018, vol. 48, no. 2, pp. 133-140. doi: 10.32917/hmj/1533088825.
15. Ouyang P., Cheng D., Cao Y., Zhan X. The visualization of hyperbolic patterns from invariant mapping method. Comput. Graphics, 2012, vol. 36, no. 2, pp. 92-100. doi: 10.1016/j.cag.2011.12.005.
16. Chen N., Chung K.W. Efficient generation of hyperbolic patterns from a single asymmetric motif. Fractals, 2016, vol. 24, no. 4, art. 1650043. doi: 10.1142/S0218348X16500432.
/ Для цитирования: Трошин П.И. Регулярное замощение плоскости Лобачев-( ского // Учен. зап. Казан. ун-та. Сер. Физ.-матем. науки. - 2019. - Т. 161, кн. 4. -\ С. 591-605. - doi: 10.26907/2541-7746.2019.4.591-605.
/ For citation: Troshin P.I. Regular tessellation of the Lobachevskii plane. Uchenye ( Zapiski Kazanskogo Universiteta. Seriya Fiziko-Matematicheskie Nauki, 2019, vol. 161, \ no. 4, pp. 591-605. doi: 10.26907/2541-7746.2019.4.591-605. (In Russian)