Introducción
Un hipercubo / tesseract es el equivalente de 4 dimensiones de un cubo normal. Se hace tomando una red de cubos, extendiéndola a la tercera dimensión, luego, usando la cuarta dimensión, doblándola en un hipercubo. Básicamente es un cubo, donde cada lado es un cubo.
Para crear un hipercubo, necesita 16 vectores 4d (un vector con un x
, a y
, ay z
un w
componente). Estos vectores son los siguientes:
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);
El hipercubo tiene 24 caras. La siguiente lista contiene todos ellos (cada grupo marca un 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
Con toda esta información, técnicamente tiene un hipercubo en el código. Para rotar esto, necesita 6 matrices diferentes para cada plano de rotación, una para los planos YZ, XZ, XY, XW, YW y ZW. Después de tener cada matriz, debe multiplicar los vértices del cubo con ellas.
Las siguientes imágenes muestran la estructura de cada matriz:
Para la rotación en el plano YZ:
Para la rotación en el plano XZ:
Para la rotación en el plano XY:
Para la rotación en el plano XW:
Para la rotación en el plano YW:
Para la rotación en el plano ZW:
Las rotaciones se aplican en este orden.
Después de todo esto, tienes un hipercubo rotado. Ahora necesitas dibujarlo. Debe utilizar una proyección ortogonal combinado con una proyección en perspectiva para enviar (x, y, z, w)
a (2x/(2+z), 2y/(2+z))
.
Entrada
Su entrada es de 6 enteros entre 0 (inclusive) y 360 (exclusivamente). Estos representan las rotaciones en grados en los diferentes planos de rotación del hipercubo.
Salida
Su salida debe ser una sola imagen que contenga el hipercubo. La pantalla puede ser una imagen rasterizada, una imagen vectorial o un arte ASCII. La imagen de salida debe tener al menos 100 * 100 píxeles, y el cubo debe ocupar al menos el 50% de la pantalla. Se permite cualquier formato de salida de imagen predeterminado.
Casos de prueba
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
Abra las imágenes en una nueva pestaña para verlas en tamaño completo.
Reglas
- Aplican reglas predeterminadas
- Las lagunas estándar están prohibidas
- El código más corto en bytes gana