Giriş
Bir hiper küp / tesseract normal bir küpün 4 boyutlu eşdeğeridir. Bir küp ağı alıp 3. boyuta genişletmek, sonra - 4. boy kullanmak - bir hiperküp içine katlamak suretiyle yapılır. Temel olarak her iki tarafın küp olduğu bir küp.
Bir hiper küp oluşturmak için 16 4d vektöre ihtiyacınız var ( x
a y
, a z
ve a w
bileşenli bir vektör ). Bu vektörler aşağıdaki gibidir:
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);
Hiper küpün 24 yüzü var. Aşağıdaki liste hepsini içerir (her grup bir dörtlü işaretler):
ABFE, CDHG, BCGF, DAEH, DCBA, FEHG
IJNM, KLPO, JKON, LIMP, LKJI, PMNO
ABJI, DCKL, BCKJ, DAIL, FEMN, GHPO, FGON, EHPM, EAIM, BFNJ, CGOK, HDLP
Tüm bu bilgilerle birlikte, teknik olarak kodda bir hiper küpünüz var. Bunu döndürmek için, her bir dönme düzlemi için 6 farklı matris gerekir, biri YZ, XZ, XY, XW, YW ve ZW düzlemleri için. Her matrisi aldıktan sonra, küpün köşelerini onlarla çarpmanız gerekir.
Aşağıdaki resimler her bir matrisin yapısını gösterir:
YZ düzlemindeki dönüş için:
XZ düzlemindeki dönüş için:
XY düzlemindeki dönüş için:
XW düzlemindeki dönüş için:
YW düzlemindeki dönüş için:
ZW düzlemindeki dönüş için:
Rotasyonlar bu sırayla uygulanır.
Bütün bunlardan sonra, döndürülmüş bir hiper küpünüz var. Şimdi çizmelisin. Göndermek (x, y, z, w)
için perspektif projeksiyon ile birlikte ortogonal bir projeksiyon kullanmalısınız (2x/(2+z), 2y/(2+z))
.
Giriş
Girişiniz 0 (yalnızca) ve 360 (yalnızca) arasında 6 tamsayıdır. Bunlar, hiper küpün farklı dönme düzlemlerinde derece cinsinden dönmeleri temsil eder.
Çıktı
Çıktınız köprüyü içeren tek bir görüntü olmalıdır. Ekran, rasterleştirilmiş bir görüntü, bir vektör görüntüsü veya bir ASCII resmi olabilir. Çıktı görüntüsü en az 100 * 100 piksel olmalıdır ve küpün ekranın en az% 50'sini alması gerekir. Herhangi bir varsayılan görüntü çıkış formatına izin verilir.
Test durumları
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
Görüntüleri tam boyutlu görmek için yeni bir sekmede açın.
kurallar
- Varsayılan kurallar geçerlidir
- Standart boşluklar yasaktır
- Bayt cinsinden en kısa kod kazanır