pengantar
Hypercube / tesseract adalah setara 4 dimensi dari kubus normal. Itu dibuat dengan mengambil jaring kubus, memperluasnya ke dimensi 3, lalu - menggunakan dimensi 4 - melipatnya menjadi hypercube. Ini pada dasarnya sebuah kubus, di mana setiap sisi adalah kubus.
Untuk membuat hypercube, Anda memerlukan 16 vektor 4d (vektor dengan komponen x
, a y
, a, z
dan w
komponen). Vektor-vektor ini adalah sebagai berikut:
A(0, 0, 0, 0); B(1, 0, 0, 0); C(1, 0, 1, 0); D(0, 0, 1, 0); E(0, 1, 0, 0); F(1, 1, 0, 0); G(1, 1, 1, 0); H(0, 1, 1, 0);
I(0, 0, 0, 1); J(1, 0, 0, 1); K(1, 0, 1, 1); L(0, 0, 1, 1); M(0, 1, 0, 1); N(1, 1, 0, 1); O(1, 1, 1, 1); P(0, 1, 1, 1);
Hypercube memiliki 24 wajah. Daftar berikut berisi semuanya (setiap grup menandai kuad):
ABFE, CDHG, BCGF, DAEH, DCBA, FEHG
IJNM, KLPO, JKON, LIMP, LKJI, PMNO
ABJI, DCKL, BCKJ, DAIL, FEMN, GHPO, FGON, EHPM, EAIM, BFNJ, CGOK, HDLP
Dengan semua informasi ini, secara teknis Anda memiliki hypercube dalam kode. Untuk memutar ini, Anda membutuhkan 6 matriks yang berbeda untuk setiap bidang rotasi, satu untuk pesawat YZ, XZ, XY, XW, YW dan ZW. Setelah Anda memiliki setiap matriks, Anda perlu mengalikan simpul kubus dengan mereka.
Gambar-gambar berikut menunjukkan struktur setiap matriks:
Untuk rotasi pada bidang YZ:
Untuk rotasi pada bidang XZ:
Untuk rotasi pada bidang XY:
Untuk rotasi pada bidang XW:
Untuk rotasi pada pesawat YW:
Untuk rotasi pada bidang ZW:
Rotasi diterapkan dalam urutan ini.
Setelah semua ini, Anda memiliki hypercube yang diputar. Sekarang kamu harus menggambarnya. Anda harus menggunakan proyeksi orthogonal dikombinasikan dengan proyeksi perspektif untuk mengirim (x, y, z, w)
ke (2x/(2+z), 2y/(2+z))
.
Memasukkan
Input Anda adalah 6 bilangan bulat antara 0 (inklusif) dan 360 (eksklusif). Ini mewakili rotasi dalam derajat pada bidang rotasi yang berbeda dari hypercube.
Keluaran
Output Anda harus berupa gambar tunggal yang mengandung hypercube. Layar dapat berupa gambar raster, gambar vektor atau seni ASCII. Gambar output harus minimal 100 * 100 piksel, dan kubus perlu mengambil setidaknya 50% dari layar. Format output gambar apa pun diizinkan.
Uji kasus
0 0 0 0 0 0
0 0 0 0 0 30
30 0 0 0 0 30
0 0 0 30 30 30
45 45 45 0 0 0
45 45 45 45 45 45
Buka gambar di tab baru, untuk melihatnya dalam ukuran penuh.
Aturan
- Aturan default berlaku
- Celah standar dilarang
- Kode terpendek dalam byte menang