# -*- coding: utf-8 -*- import rhinoscriptsyntax as rs import random # Deaktivieren der Neuzeichnung rs.EnableRedraw(0) # Alle Objekte löschen all_objects = rs.AllObjects() rs.DeleteObjects(all_objects) # Parameter zur Generierung von Punkten coordinates = [] count = 20 x_value = 5.0 # Schritt erhöht, um den Abstand entlang der X-Achse zu vergrößern y_value = 5.0 # Schritt erhöht, um den Abstand entlang der Y-Achse zu vergrößern z_value = 5.0 # Schritt erhöht, um den Abstand entlang der Z-Achse zu vergrößern # Erstellen von Punkten mit zufälligen Abweichungen for i in range(count): for j in range(count): for k in range(count): x = i * x_value + random.uniform(0.5, x_value) # Zufälligere Abweichungen, um den Abstand zu erhöhen y = j * y_value + random.uniform(0.5, y_value) z = k * z_value + random.uniform(0.5, z_value) point = [x, y, z] coordinates.append(point) # Punkte hinzufügen points = rs.AddPoints(coordinates) # Funktion zum Erstellen eines Farbverlaufs von Weiß über Rosa bis Lila def gradient_color(index, total_points): ratio = index / float(total_points) red = int(255 * (1 - ratio)) # Von Weiß zu Lila (Reduzierung der roten Komponente) green = int(100 * (1 - ratio)) # Weicher Übergang über Rosa (grüne Komponente) blue = int(255 * ratio) # Erhöhung der blauen Komponente für den Übergang zu Lila return [red, green, blue] # Punkte mit Farbverlauf färben for idx, point in enumerate(points): color = gradient_color(idx, len(points)) rs.ObjectColor(point, color) # Koordinaten mischen, um eine Linie zu erstellen random.shuffle(coordinates) # Hinzufügen einer Kurve mit Zitronenfarbe curve = rs.AddCurve(coordinates, 1) rs.ObjectColor(curve, [255, 255, 0]) # Zitronenfarbe (Maximale Rot- und Grünkomponenten) # Neuzeichnung aktivieren rs.EnableRedraw(1)