from laby import Laby from zelle import Zelle def svgExport(laby:Laby, dateiName:str) -> None: # Breite, Höhe und Rand in mm (A4 Hochformat) breite = 210 hoehe = 297 rand = 20 unit = min([(breite-2*rand)/laby.breite, (hoehe-2*rand)/laby.hoehe]) # mm pro Zelle, für die Skalierung offsets = [(breite-laby.breite*unit)/2, (hoehe-laby.hoehe*unit)/2] # Verschiebung für symmetrische Ränder svg = f'\n\n' style = f'style="fill:none;stroke:#000000;stroke-opacity:1;stroke-linecap:round;stroke-width:{0.7/unit:.4f}"' svg += f" \n" for spalte in laby.zellen: for zelle in spalte: if not zelle.offen[3]: # oben auf jeden Fall zeichnen svg += f" '\n" if not zelle.offen[2]: # links auf jeden Fall zeichnen svg += f" '\n" if zelle.x==laby.breite-1 and not zelle.offen[0]: # nach rechts nur in der letzten Spalte svg += f" '\n" if zelle.y==laby.hoehe-1 and not zelle.offen[1]: # nach unten nur in der letzten Zeile svg += f" '\n" svg += " \n\n" with open(dateiName,"w") as svgFile: svgFile.write(svg)