Buat plot (disk Poincare) dari tessellation pada bidang hiperbolik, seperti:
Program ini membutuhkan empat input:
1) Berapa banyak tepian / poligon (tiga dalam contoh ini).
2) Berapa banyak berpotongan di setiap dhuwur (tujuh dalam contoh ini).
3) Berapa banyak langkah menjauh dari titik pusat ke render (5 dalam contoh ini, jika Anda melihat lebih dekat). Ini berarti bahwa sebuah simpul disertakan jika dapat dicapai dalam 5 langkah atau kurang dari pusat. Tepi diberikan jika kedua verteksnya disertakan.
4) Resolusi gambar (jumlah piksel tunggal, gambar persegi).
Outputnya harus berupa gambar. Tepian harus diterjemahkan sebagai lingkaran-busur, bukan garis (proyeksi disk Poincaré mengubah garis menjadi lingkaran). Poin tidak perlu dirender. Ketika pengguna memasukkan sesuatu yang tidak hiperbolik (yaitu 5 pertemuan segitiga di setiap titik), program tidak harus bekerja dengan baik. Ini kode-golf, jadi jawaban terpendek menang.
sumber
Jawaban:
Mathematica, 2535 byte
Diambil dari sini (karenanya mengapa itu komunitas wiki). Tidak terlalu golf. Lihat tautan yang disediakan untuk penjelasan penulis tentang kodenya.
Juga, saya bukan ahli Mathematica, tapi saya yakin Martin bisa melakukan keajaiban pada panjang kode. Saya bahkan tidak mengerti matematika di baliknya.
Saya membiarkannya mudah dibaca, tetapi jika pertanyaannya tidak dapat ditutup, saya akan membuatnya lebih mudah dibaca dan memindahkan 2 parameter lainnya di dalam fungsi pemanggil.
Saat ini tidak valid , silakan bantu memperbaikinya:
Saya pikir ini menggunakan garis daripada busur.
Berpusat pada wajah, bukan pada titik.
Disebut seperti:
sumber