» » » Не простая координатная система, а золотая

 

Не простая координатная система, а золотая

Автор: admin от 17-11-2017, 05:55, посмотрело: 112

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



Не простая координатная система, а золотая


Распределение углов в ромбах в одном 1:4, 36°:144°, в другом 2:3, 72°:108°. Углы в ромбах кратны одной десятой полного разворота, 36°.



Определим координаты углов правильного десятиугольника.
























градусcossin
010
360,8090170,587785
720,3090170,951056


Не простая координатная система, а золотая


Остальные симметрично, меняется только знак.



Сразу заметно, что косинусы углов 36° и 72° отличаются на 0,5. И это очень многозначительный факт!



Абсолютных значений координат ровно три штуки — и для координат абсциссных и для ординатных. Все три могут быть представлены как два коэффициента с целыми множителями.



Для абсциссных координат это просто: среди значений ноль, который представлен нулевыми множителями. Среди ординатных координат третья — единица — не соразмерна остальным двум. Но, так как разница координат это 0,5, то эта разница может стать одним из коэффициентов, а второй коэффициент будет меньшим значением. Значение 1 получится множителем 2.






















































































*36°xy
Cxa=0,5Cxb=0,309017Cya=0,951056Cxb=0,587785
0 2 0 0 0
1 1 1 0 1
2 0 1 1 0
3 0-1 1 0
4-1-1 0 1
5-2 0 0 0
6-1-1 0-1
7 0-1-1 0
8 0 1-1 0
9 1 1 0-1




И значит, существует целочисленная система координат.



Не простая координатная система, а золотая



Не простая координатная система, а золотая


Коэффициенты попарно различаются на один и тот же множитель, это коэффициент золотого сечения.



Не простая координатная система, а золотая



Не простая координатная система, а золотая



Не простая координатная система, а золотая



Можно вывести точное представление для коэффициентов.



Не простая координатная система, а золотая



Не простая координатная система, а золотая



Не простая координатная система, а золотая



Не простая координатная система, а золотая



Дальше магия золотого сечения:



Не простая координатная система, а золотая



Не простая координатная система, а золотая



Не простая координатная система, а золотая



Не простая координатная система, а золотая



Отсюда множество закономерностей:



Тривиальные:



Не простая координатная система, а золотая

Не простая координатная система, а золотая

Не простая координатная система, а золотая

Не простая координатная система, а золотая



Из-за равенства отношения коэффициентов:



Не простая координатная система, а золотая

Не простая координатная система, а золотая



Квадраты коэффициентов:



Не простая координатная система, а золотая

Не простая координатная система, а золотая

Не простая координатная система, а золотая



Произведение:



Не простая координатная система, а золотая



Исходя из этих свойств можно составить матрицу для целочисленного умножения векторов:



const crd vmul[16] = {
{ 1, 0, 0, 0}, { 0, 1, 0, 0}, { 0, 0, 1, 0}, { 0, 0, 0, 1}, 
{ 0, 1, 0, 0}, { 1,-1, 0, 0}, { 0, 0, 0, 1}, { 0, 0, 1,-1}, 
{ 0, 0, 1, 0}, { 0, 0, 0, 1}, {-3,-1, 0, 0}, {-1,-2, 0, 0}, 
{ 0, 0, 0, 1}, { 0, 0, 1,-1}, {-1,-2, 0, 0}, {-2, 1, 0, 0}
};


И всё перемножение сведётся к



int* vm = (int*)vmul;
for(int i = 0; i < 4; i++) 
  for(int j = 0; j < 4; j++) 
    for(int k = 0; k < 4; k++)
      v3[k] += v1[i] * v2[j] * vm[(i * 4 + j) * 4 + k];


Векторная единица в этой системе выражается как {2,0,0,0}. После простого переменожения таких единиц мы получим {4,0,0,0}. Так что, деление на два, которое было в каждой формуле для коэффициентов, производится отдельно, как нормировка:



for(int i = 0; i < 4; i++) v3[i] /= 2;


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



Но не все сочетания координат определяют место, достижимое из начального положения.



Для одного шага разложения по координатам следующие: {2,0,0,0}, {1,1,0,1}, {0,1,1,0}, {0,-1,1,0}, {-1,-1,0,1}, {-2,0,0,0}, {-1,-1,0,-1}, {0,-1,-1,0}, {0,1,-1,0}, {1,1,0,-1}. Любая комбинация этих шагов допустима.



Вместе с единичным шагом {2,0,0,0} сочетания

{0,1,1,0} – {0,1,-1,0} = {0,0,2,0},

{1,1,0,1} – {1,1,0,-1} = {0,0,0,2},

{1,1,0,1} + {1,1,0,-1} – {2,0,0,0} = {0,2,0,0}

означают, что любую отдельную координату можно сдвинуть на 2, и значит, на достижимость влияет только групповая четность координат. Достижимых сочетаний получается четыре: нулевая: {0,0,0,0}, от одиночных шагов: {1,1,0,1}, {0,1,1,0}, и их комбинация: {1,0,1,1}.



Как видно, групповая четность абциссных координат однозначно взаимосвязана c групповой четностью ординатных координат. Это значит, что вертикальные координаты делятся на четыре типа, горизонтальные координаты тоже делятся на 4 типа, а к координатной системе принадлежат точки исключительно при их правильной комбинации.



Не простая координатная система, а золотая


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

Если, конечно, не иметь ввиду её изначально.



В общем, существует система координат, которая совмещает целое значение координат и повороты в 36°. Когда я её вывел, был удивлён, что не знал о ней раньше. Но теперь о ней есть статья на Хабре.



Не простая координатная система, а золотая





Не простая координатная система, а золотая



Источник: Хабрахабр

Категория: Программирование » Веб-разработка

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Добавление комментария

Имя:*
E-Mail:
Комментарий:
Полужирный Наклонный текст Подчеркнутый текст Зачеркнутый текст | Выравнивание по левому краю По центру Выравнивание по правому краю | Вставка смайликов Выбор цвета | Скрытый текст Вставка цитаты Преобразовать выбранный текст из транслитерации в кириллицу Вставка спойлера
Введите два слова, показанных на изображении: *