Faça um gráfico (disco Poincare) de um mosaico em um plano hiperbólico, como:
O programa aceita quatro entradas:
1) Quantas arestas / polígono (três neste exemplo).
2) Quantas interseções em cada vértice (sete neste exemplo).
3) Quantas etapas se afastam do vértice central para renderizar (5 neste exemplo, se você olhar com atenção). Isso significa que um vértice é incluído se puder ser alcançado em 5 ou menos etapas no centro. As arestas são renderizadas se ambos os vértices estiverem incluídos.
4) A resolução da imagem (um único número de pixels, a imagem é quadrada).
A saída deve ser uma imagem. As arestas devem ser renderizadas como arcos em círculo, não em linhas (a projeção do disco de Poincaré transforma linhas em círculos). Os pontos não precisam ser renderizados. Quando o usuário coloca algo que não é hiperbólico (isto é, 5 triângulos que se encontram em cada vértice), o programa não precisa funcionar corretamente. Isso é código-golfe, então a resposta mais curta vence.
fonte
Respostas:
Mathematica, 2535 bytes
Retirado daqui (por isso é wiki da comunidade). Na verdade, não jogava golfe. Veja o link fornecido para a explicação do autor sobre seu código.
Além disso, não sou especialista em Mathematica, mas aposto que Martin poderia fazer maravilhas no comprimento do código. Eu nem entendo a matemática por trás disso.
Deixei legível, mas, se a pergunta não for fechada, vou melhorar a legibilidade e mover os outros 2 parâmetros dentro da função de chamada.
Atualmente inválido , sinta-se à vontade para ajudar a melhorá-lo:
Eu acho que isso usa linhas ao invés de arcos.
Centralizado em um rosto, em vez de um vértice.
Chamado como:
fonte