Einführung
Ein Hyperwürfel / Tesserakt ist das vierdimensionale Äquivalent eines normalen Würfels. Es wird hergestellt, indem ein Würfelnetz genommen, auf die 3. Dimension erweitert und dann - unter Verwendung der 4. Dimension - zu einem Hyperwürfel gefaltet wird. Es ist im Grunde ein Würfel, bei dem jede Seite ein Würfel ist.
Um einen Hypercube zu erstellen, benötigen Sie 16 4d-Vektoren (einen Vektor mit einer x
, einer y
, einer z
und einer w
Komponente). Diese Vektoren sind die folgenden:
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);
Der Hyperwürfel hat 24 Gesichter. Die folgende Liste enthält alle (jede Gruppe markiert ein Quad):
ABFE, CDHG, BCGF, DAEH, DCBA, FEHG
IJNM, KLPO, JKON, LIMP, LKJI, PMNO
ABJI, DCKL, BCKJ, DAIL, FEMN, GHPO, FGON, EHPM, EAIM, BFNJ, CGOK, HDLP
Mit all diesen Informationen haben Sie technisch gesehen einen Hypercube im Code. Um dies zu drehen, benötigen Sie 6 verschiedene Matrizen für jede Rotationsebene, eine für die Ebenen YZ, XZ, XY, XW, YW und ZW. Nachdem Sie jede Matrix haben, müssen Sie die Eckpunkte des Würfels mit ihnen multiplizieren.
Die folgenden Bilder zeigen die Struktur jeder Matrix:
Für die Rotation auf der YZ-Ebene:
Für die Drehung auf der XZ-Ebene:
Für die Drehung auf der XY-Ebene:
Für die Drehung auf der XW-Ebene:
Für die Drehung auf der YW-Ebene:
Für die Rotation auf der ZW-Ebene:
Die Rotationen werden in dieser Reihenfolge angewendet.
Nach all dem haben Sie einen gedrehten Hyperwürfel. Jetzt musst du es zeichnen. Sie sollten eine orthogonale Projektion in Kombination mit einer perspektivischen Projektion verwenden, an die gesendet werden (x, y, z, w)
soll (2x/(2+z), 2y/(2+z))
.
Eingang
Ihre Eingabe besteht aus 6 ganzen Zahlen zwischen 0 (einschließlich) und 360 (ausschließlich). Diese repräsentieren die Rotationen in Grad auf den verschiedenen Rotationsebenen des Hyperwürfels.
Ausgabe
Ihre Ausgabe sollte ein einzelnes Bild sein, das den Hypercube enthält. Die Anzeige kann ein gerastertes Bild, ein Vektorbild oder eine ASCII-Grafik sein. Das Ausgabebild sollte mindestens 100 * 100 Pixel groß sein und der Würfel muss mindestens 50% des Bildschirms einnehmen. Jedes Standardformat für die Bildausgabe ist zulässig.
Testfälle
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
Öffnen Sie die Bilder in einem neuen Tab, um sie in voller Größe anzuzeigen.
Regeln
- Es gelten die Standardregeln
- Standardlücken sind verboten
- Kürzester Code in Bytes gewinnt