# -*- coding: utf-8 -*- import rhinoscriptsyntax as rs import random import math # Einheitensystem und Anzeigeeinstellungen rs.UnitSystem(3) rs.ShowGrid(view=None, show=0) rs.ShowGridAxes(view=None, show=0) rs.ViewDisplayMode(view=None, mode="Shaded") rs.EnableRedraw(0) # Szene leeren rs.DeleteObjects(rs.AllObjects()) # Funktion zur Erzeugung eines Farbverlaufs von Weiß über Rosa zu Violett def gradient_color(i, max_val): ratio = i / float(max_val) r = int(255 * (1 - ratio)) + int(238 * ratio) # Übergang von Weiß über Rosa zu Violett g = int(255 * (1 - ratio)) b = int(255 * ratio) return [r, g, b] # Funktion zur Erzeugung zufälliger Punkte auf einer Kugel def generate_sphere_points(radius, num_points): points = [] for _ in range(num_points): theta = random.uniform(0, math.pi * 2) phi = random.uniform(0, math.pi) x = radius * math.sin(phi) * math.cos(theta) y = radius * math.sin(phi) * math.sin(theta) z = radius * math.cos(phi) points.append([x, y, z]) return points # Radius der Kugel und Anzahl der Punkte radius = 25 anz = random.choice(range(80, 120)) # Anzahl der Punkte auf der Kugel # Erzeugung der Punkte auf der Kugel coords = generate_sphere_points(radius, anz) # Hinzufügen von Punkten mit einem Farbverlauf von Weiß über Rosa zu Violett for i, cor in enumerate(coords): color = gradient_color(i, anz) point = rs.AddPoint(cor) if point: rs.ObjectColor(point, color) # Hinzufügen von Linien (Vektoren) zwischen zufälligen Punkten for i in range(anz // 2): start_point = random.choice(coords) end_point = random.choice(coords) if start_point != end_point: line = rs.AddLine(start_point, end_point) if line: rs.ObjectColor(line, [0, 0, 0]) # Schwarze Linien # Skalierung und Neuzeichnung rs.ZoomExtents() rs.EnableRedraw(1)