introduzione
Un ipercubo / tesseratto è l'equivalente a 4 dimensioni di un cubo normale. È realizzato prendendo una rete cubica, estendendola alla terza dimensione, quindi - usando la quarta dimensione - piegandola in un ipercubo. È fondamentalmente un cubo, dove ogni lato è un cubo.
Per creare un ipercubo, sono necessari 16 vettori 4d (un vettore con un x, un y, un ze un wcomponente). Questi vettori sono i seguenti:
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);
L'ipercubo ha 24 facce. Il seguente elenco contiene tutti loro (ogni gruppo segna un quadrante):
ABFE, CDHG, BCGF, DAEH, DCBA, FEHG
IJNM, KLPO, JKON, LIMP, LKJI, PMNO
ABJI, DCKL, BCKJ, DAIL, FEMN, GHPO, FGON, EHPM, EAIM, BFNJ, CGOK, HDLP
Con tutte queste informazioni, tecnicamente hai un ipercubo nel codice. Per ruotare questo, sono necessarie 6 matrici diverse per ogni piano di rotazione, una per i piani YZ, XZ, XY, XW, YW e ZW. Dopo aver ottenuto ogni matrice, è necessario moltiplicare i vertici del cubo con essi.
Le seguenti immagini mostrano la struttura di ciascuna matrice:
Per la rotazione sul piano YZ:

Per la rotazione sul piano XZ:

Per la rotazione sul piano XY:

Per la rotazione sul piano XW:

Per la rotazione sul piano YW:

Per la rotazione sul piano ZW:

Le rotazioni vengono applicate in questo ordine.
Dopo tutto questo, hai un ipercubo ruotato. Ora devi disegnarlo. Si consiglia di utilizzare una proiezione ortogonale combinato con una proiezione prospettica per inviare (x, y, z, w)a (2x/(2+z), 2y/(2+z)).
Ingresso
Il tuo input è di 6 numeri interi compresi tra 0 (inclusivamente) e 360 (esclusivamente). Questi rappresentano le rotazioni in gradi sui diversi piani di rotazione dell'ipercubo.
Produzione
L'output dovrebbe essere una singola immagine contenente l'ipercubo. Il display può essere un'immagine rasterizzata, un'immagine vettoriale o un'arte ASCII. L'immagine di output dovrebbe essere almeno 100 * 100 pixel e il cubo deve occupare almeno il 50% dello schermo. È consentito qualsiasi formato di output dell'immagine predefinito.
Casi test
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

Apri le immagini in una nuova scheda per vederle a schermo intero.
Regole
- Si applicano le regole predefinite
- Sono vietate le scappatoie standard
- Vince il codice più breve in byte















