The Penrose segitiga , juga dikenal sebagai tribar Penrose, atau tribar tidak mungkin, adalah objek yang tidak mungkin.
Tujuan dari tantangan ini adalah untuk menampilkan segitiga Penrose dalam byte sesedikit mungkin.
Sumber: Wikipedia
Aturan:
- Anda harus menampilkan Segitiga Penrose secara digital setelah membuatnya.
- Mereka harus terlihat sama dengan gambar di atas dari halaman wiki (sumber di atas) tanpa langsung menampilkan gambar.
- Gambar yang sama dengan skema warna yang sama harus ditampilkan setidaknya dalam ukuran 400x400.
- Harus seakurat mungkin.
Semoga berhasil dan selamat bersenang - senang!
code-golf
kolmogorov-complexity
graphical-output
arodebaugh
sumber
sumber
Jawaban:
logo,
129120 byteMenarik hanya 4 sisi pertama dari setiap bentuk L, lalu mengangkat pena, bergerak ke tempat yang sesuai pada bentuk L berikutnya, menurunkan pena dan menggambar 4 sisi dari itu. Setiap bentuk L meminjam 2 sisi dari yang sebelumnya.
Suntingan terbaru: pindah dari area isian hitam ke area isian abu-abu,
fd
bukansetx
, dan ubah semua gerakan darifd
kebk
untuk menyimpan satu byte pada rotasi 180 derajat:rt 210
->rt 30
, perpendeksetpencolor
menjadisetpc
(tidak terdokumentasi dalam intepreter yang saya gunakan, tetapi berfungsi .)logo, 140 byte
Gambarlah 6 sisi setiap bentuk L, overshoot di tepi terakhir, lalu putar 180 derajat untuk memulai yang berikutnya.
jalankan di http://www.calormen.com/jslogo/#
Disarankan untuk dilakukan
cs pd setpencolor 0
sebelum berlari untuk memastikan layarnya bersih, kura-kura berada di tengah dan mengarah ke atas, pena turun dan diatur ke hitam (pengaturan default, tidak diperlukan untuk sesi baru) dan jugaht
untuk menyembunyikan kura-kura (st
akan perlihatkan lagi.)sumber
SVG (HTML5), 191 byte
sumber
Python 2,
211201195188175175 byteSayangnya,
exec
ini tidak diterapkan di Trinket, jadi ini tidak dapat diuji online apa adanya. Setidaknya, tidak dalam versi gratis. Saya mencetak string dan menempelkannya sebagai kode untuk mengujinya. Jika Anda pintar dengan skrip, Anda dapat mengubah ukuran html / css sesuai keperluan untuk mendapatkan kanvas yang lebih besar. Beri tahu saya jika Anda melakukannya.Cobalah online - gunakan ukuran yang lebih kecil karena kanvas situs terlalu kecil untuk 400px, tetapi Anda dapat melihat seluruh hasilnya.
Tidak Disatukan:
sumber
255*n/2
dapat dikurangi ke128*n
saya pikir nilai RGB float akan mengumpulkan anyways jadi apakah akan ada perubahan dalam warna pixel?PHP, 153 byte
Ini hanya akan berfungsi jika
short_open_tag
pengaturan diaktifkan. Kode sumber berisi karakter yang tidak dapat dicetak, jadi minta hex dump:Data yang didekompresi terlihat seperti ini (dengan jeda baris ditambahkan untuk keterbacaan):
Meskipun data SVG tidak sepenuhnya valid, PHP menyajikannya sebagai
text/html
default. Tanpa deklarasi tipe dokumen, dokumen ditangani dalam mode quirks, yang sangat memaafkan.Untuk meningkatkan kompresi, saya memecah gambar menjadi tiga bagian berbentuk "7" yang dapat ditarik menggunakan
<path>
elemen yang hampir identik . Gambar yang dihasilkan akan diperluas untuk mengisi viewport. Berikut ini ambil layar dari jendela 500 × 500 piksel:sumber
HTML + JS (ES6), 34 + 306 = 340 byte
Memanfaatkan kemiringan horizontal 30 derajat - dalam argumen ke-3 dari transformasi matriks, garis singgung 30 ° direpresentasikan sebagai
pow(3,-.5)
.Ada beberapa angka ajaib jelek, dan itu tidak cukup cocok dengan proporsi gambar Wikipedia. Saya yakin ada cara yang lebih "matematis" untuk melakukan ini; bantuan apa pun akan dihargai.
Lihat versi yang tidak dikenali pada CodePen.
sumber
HTML + CSS, 9 +
315309308 = 317 bytePerbatasan dan kemiringan yang melimpah! Diuji pada Chrome. Lihat versi yang tidak dikenali pada CodePen .
sumber
>
, kan?Mathematica 171 Bytes
Gambarlah 3 poligon menggunakan AnglePath, kelipatan putaran 60 derajat, dan manfaatkan bahwa titik awal untuk setiap poligon adalah titik ke-5 dari poligon sebelumnya.
sumber
AnglePath
.Tcl / Tk, 205
sumber