Sandkasten
Für die Zwecke der aktuellen Aufgabe wird ein Würfel mit Einheitslänge in Schrägprojektion mit ASCII-Symbolen wie folgt gerendert:
+-----+
/ /|
+-----+ |
| | +
| |/
+-----+
+
für die Eckpunkte.-
für die X-Kanten. Die Einheitslänge entlang X wird durch fünf-
zwischen zwei Eckpunkten dargestellt.|
für die Y-Kanten. Die Einheitslänge entlang Y wird durch zwei|
zwischen zwei Eckpunkten dargestellt./
für die Z-Kanten. Die Einheitslänge entlang Z wird durch einen/
zwischen zwei Eckpunkten dargestellt.- Scheitelpunkte werden nur dort gezeichnet, wo sich alle drei Ebenen schneiden.
- Kanten werden nur dort gezeichnet, wo sich genau zwei Ebenen schneiden.
Wenn eine Einheitsfläche extrudiert wird, wird sie von ihrer ursprünglichen Position um eine Einheitslänge versetzt, und für jede Richtung (positiv und negativ) werden vier neue Kanten erstellt.
Bei der Extrusion werden die Achsen eines kartesischen 3D-Koordinatensystems gezeichnet, wobei jede Achse als Quader mit einem Querschnitt von 1x1 und einer Länge n
von (0,0,0) dargestellt wird.
Mit 1 entlang X extrudiert:
+-----------------+
/ /|
+-----------------+ |
| | +
| |/
+-----------------+
Aufgabe
Extrudieren Sie bei drei Zahlen für die XYZ-Achsen die Flächen eines Einheitswürfels symmetrisch um die angegebenen Beträge und geben Sie das Ergebnis mit den oben angegebenen ASCII-Symbolen wieder.
Eingang
x, y, z - nicht negative Zahlen - Extrusionslängen für die jeweiligen Achsen. 0 bedeutet keine Extrusion. Die Eingabe kann aus drei Zahlen, einer Liste mit drei Zahlen, einem Tripel, einer Zeichenfolge oder einem beliebigen für Sie geeigneten Wert bestehen.
Ausgabe
Die ASCII-Zeichnung des Würfels nach der Extrusion. Führende und nachfolgende Leerzeichen sind erlaubt.
Testfälle
X Y Z
0 0 0
+-----+
/ /|
+-----+ |
| | +
| |/
+-----+
1 0 0
+-----------------+
/ /|
+-----------------+ |
| | +
| |/
+-----------------+
0 0 1
+-----+
/ /|
/ / |
/ / +
/ / /
/ / /
+-----+ /
| | /
| |/
+-----+
1 1 0
+-----+
/ /|
+-----+ |
+---| | +-----+
/ | |/ /|
+-----+ +-----+ |
| | +
| |/
+-----+ +-----+
| | +
| |/
+-----+
2 0 1
+-----+
/ /|
+-----------+ +-----------+
/ /|
+-----------+ +-----------+ |
| / /| | +
| +-----+ | |/
+---------| | +-----------+
| |/
+-----+
1 1 1
+-----+
/ /|-+
+-----+ |/|
+---| | +-----+
/ | |/ /|
+-----+-----+-----+ |
| / /| | +
| +-----+ | |/
+---| | +-----+
| |/| +
+-----+ |/
+-----+
Gewinnkriterien
Die kürzeste Lösung in Bytes in jeder Sprache gewinnt. Bitte fügen Sie eine kurze Beschreibung der verwendeten Methode und Ihres Codes hinzu.