# -*- coding: utf-8 -*- """ Created on Sun Oct 29 21:26:14 2023 @author: Lukas """ import drawsvg as draw import random # Größe der Zeichenfläche canvas_width = 400 canvas_height = 400 # Anzahl der zufällig erzeugten Rechtecke num_rectangles = 100 # Mindestabstand zwischen den Rechtecken min_spacing = 5 # Erstellen der Zeichenfläche d = draw.Drawing(canvas_width, canvas_height, origin='center') # Funktion zum Erzeugen eines zufälligen Rechtecks mit Abstand def create_random_rectangle(rectangles): while True: x = random.uniform(-canvas_width / 2, canvas_width / 2) y = random.uniform(-canvas_height / 2, canvas_height / 2) width = random.uniform(10, 50) height = random.uniform(10, 50) # Überprüfen, ob das neue Rechteck mit den vorhandenen Rechtecken kollidiert collides = False for rect in rectangles: x1, y1, w1, h1 = x, y, width, height x2, y2, w2, h2 = rect if (x1 + w1 + min_spacing < x2 or x2 + w2 + min_spacing < x1 or y1 + h1 + min_spacing < y2 or y2 + h2 + min_spacing < y1): continue collides = True break if not collides: rectangles.append((x, y, width, height)) return draw.Rectangle(x, y, width, height, fill='blue') # Erzeugen der zufälligen Rechtecke und Hinzufügen zur Zeichenfläche rectangles = [] for _ in range(num_rectangles): random_rectangle = create_random_rectangle(rectangles) d.append(random_rectangle) # Speichern der SVG-Datei d.save_svg('random_rectangles_with_spacing.svg')