Составьте график (диск Пуанкаре) тесселяции на гиперболической плоскости, такой как:
Программа принимает четыре входа:
1) Сколько ребер / полигонов (три в этом примере).
2) Сколько пересекается в каждой вершине (семь в этом примере).
3) Сколько шагов от центральной вершины для рендеринга (5 в этом примере, если вы посмотрите внимательно). Это означает, что вершина включена, если она может быть достигнута за 5 или менее шагов от центра. Края отображаются, если обе их вершины включены.
4) Разрешение изображения (одно количество пикселей, изображение квадратное).
На выходе должно быть изображение. Края должны быть представлены как дуги окружности, а не линии (проекция диска Пуанкаре превращает линии в круги). Очки не должны быть оказаны. Когда пользователь вводит что-то, что не является гиперболическим (т.е. 5 треугольников, встречающихся в каждой вершине), программа не должна работать должным образом. Это код-гольф, поэтому выигрывает самый короткий ответ.
источник
Ответы:
Mathematica, 2535 байт
Взято отсюда (отсюда и почему это вики сообщества). Не то чтобы игра в гольф. Просмотрите предоставленную ссылку для объяснения автора своего кода.
Кроме того, я не эксперт по Mathematica, но держу пари, что Мартин мог творить чудеса с длиной кода. Я даже не понимаю математику за этим.
Я оставил его читаемым, но если вопрос не будет закрыт, я оставлю его в читаемом состоянии и перенесу 2 других параметра в функцию вызывающего.
В настоящее время недействительный , не стесняйтесь, чтобы помочь улучшить его:
Я думаю, что здесь используются линии, а не дуги.
Центрируется на лице, а не на вершине.
Называется как:
источник