Python-Skript zum Generieren eines zufälligen 2D-Labyrinths jeder Größe mithilfe des Eller-Algorithmus. Die Ausgabe ist eine OpenSCAD-Array-Definition, bei der Leerzeichen und Wände jeweils als 0 und 1 dargestellt werden.
Für weitere Informationen über Ellers Algorithmus siehe hier:
http://weblog.jamisbuck.org/2010/12/29/maze-generation-eller-s-algorithm
Anweisungen
Ich beabsichtige, dies letztendlich zu verwenden, um zufällig einen Labyrinthbolzen/-kasten mit glatten Innenwänden zu generieren.
Die Anzahl der horizontalen und vertikalen Zellen wird in der Befehlszeile angegeben:
/eller_generator.py 15 5 > maze_new.scad
Die Generierung der Labyrinthdefinition sollte sehr schnell sein, aber das Kompilieren in OpenSCAD kann je nach Größe des Labyrinths eine Weile dauern.
Mithilfe der Minkowski-Summe können Sie abgerundete Kanten generieren (siehe die 'Punch' STL/SCAD-Datei). Das Komponieren dauert sehr lange (etwa 5 Minuten für die Beispieldatei aufgrund von sich überschneidenden Kanten), aber die Anzeige ist ziemlich schnell.
Update 2013-Dec-26.1: Ein X/Y-Bug im OpenSCAD-Code zum Zeichnen des Labyrinths wurde behoben.
Update 2013-Dec-26.2: Fehler bei der Gleitkomma-Division in der Berechnung der Punch-Down-Wahrscheinlichkeit behoben.
Update 2013-Dec-26.3: Die Extrusionshöhe des Labyrinths wurde an die Höhe des Labyrinths angepasst.
Update 2013-Dec-27: Fehler bei der Set-Union behoben, der dazu führte, dass sich Schleifen bildeten.
Теги
Источник модели
