Salvadera
Para los propósitos de la tarea actual, un cubo de unidad de longitud se representa en proyección oblicua con símbolos ASCII de la siguiente manera:
+-----+
/ /|
+-----+ |
| | +
| |/
+-----+
+
para los vértices-
para los bordes X La unidad de longitud a lo largo de X está representada por cinco-
entre dos vértices.|
para los bordes Y La unidad de longitud a lo largo de Y está representada por dos|
entre dos vértices./
para los bordes Z La unidad de longitud a lo largo de Z está representada por uno/
entre dos vértices.- Los vértices solo se dibujan donde se cruzan los tres planos.
- Los bordes solo se dibujan donde se cruzan exactamente dos planos.
Cuando se extruye una cara de unidad, se compensa con una longitud de unidad desde su posición original y se crean cuatro bordes nuevos para cada dirección (positiva y negativa).
Puede pensar en la extrusión como en dibujar los ejes de un sistema de coordenadas cartesianas 3D donde cada eje se representa como un cuboide con una sección transversal de 1x1 y una longitud n
de (0,0,0)
Extruido por 1 a lo largo de X:
+-----------------+
/ /|
+-----------------+ |
| | +
| |/
+-----------------+
Tarea
Dados tres números para los ejes XYZ, extruya las caras de un cubo unitario simétricamente por las cantidades indicadas y rinda el resultado con los símbolos ASCII como se especificó anteriormente.
Entrada
x, y, z - números no negativos - longitudes de extrusión para los ejes respectivos. 0 significa que no hay extrusión. La entrada puede ser tres números, una lista de tres números, un triple, una cadena o cualquier cosa que sea conveniente para usted.
Salida
El dibujo ASCII del cubo después de la extrusión. Se permiten espacios en blanco iniciales y finales.
Casos de prueba
X Y Z
0 0 0
+-----+
/ /|
+-----+ |
| | +
| |/
+-----+
1 0 0
+-----------------+
/ /|
+-----------------+ |
| | +
| |/
+-----------------+
0 0 1
+-----+
/ /|
/ / |
/ / +
/ / /
/ / /
+-----+ /
| | /
| |/
+-----+
1 1 0
+-----+
/ /|
+-----+ |
+---| | +-----+
/ | |/ /|
+-----+ +-----+ |
| | +
| |/
+-----+ +-----+
| | +
| |/
+-----+
2 0 1
+-----+
/ /|
+-----------+ +-----------+
/ /|
+-----------+ +-----------+ |
| / /| | +
| +-----+ | |/
+---------| | +-----------+
| |/
+-----+
1 1 1
+-----+
/ /|-+
+-----+ |/|
+---| | +-----+
/ | |/ /|
+-----+-----+-----+ |
| / /| | +
| +-----+ | |/
+---| | +-----+
| |/| +
+-----+ |/
+-----+
Criterios ganadores
La solución más corta en bytes en cada idioma gana. Agregue una breve descripción del método utilizado y su código.