##############################
import rhinoscriptsyntax as rs
import random, time, sys   ###                                              
sys.path.append("P:/")     ### add path where "DM_lib.py" can be found !!!                                              
sys.path.append("P:/DM2/")     ### add path where "DM_lib.py" can be found !!!                                              
sys.path.append("P:/WWW/limafi/dm2")     ### add path where "DM_lib.py" can be found !!!                                              
import DM_lib as dm        ### reload(dm)    
############################## 

import rhinoscriptsyntax as rs

import random

#### einzelner kreis
radius = 7.0  
center = [-4, 3, -7]  
anzahl_punkte = 128  
delta_angle = 360 / anzahl_punkte  

start_vec = [radius, 0, 0]  

circle_points = []


for i in range(anzahl_punkte):
    rotated_vec = rs.VectorRotate(start_vec, delta_angle * i, [0, 0, 1])  
    point = rs.VectorAdd(rotated_vec, center)  
    circle_points.append(point)

# kreis
rs.AddCurve(circle_points + [circle_points[0]], 3)  



#### mehrer Kreise klein
anzahl_kreise = 80  
radius = 7.0  
anzahl_punkte = 128  
delta_angle = 360 / anzahl_punkte 


kreis_mittelpunkte = []

#mittelpunkt
for i in range(anzahl_kreise):
    center_x = random.uniform(-300, 300)  
    center_y = random.uniform(-300, 300)  
    center_z = random.uniform(0, 0)  
    kreis_mittelpunkte.append([center_x, center_y, center_z])

# Kreise zeichnen
for center in kreis_mittelpunkte:
    start_vec = [radius, 0, 0]  
    circle_points = []

    for i in range(anzahl_punkte):
        rotated_vec = rs.VectorRotate(start_vec, delta_angle * i, [0, 0, 1])  
        point = rs.VectorAdd(rotated_vec, center)  
        circle_points.append(point)

    #kurve als kreis
    rs.AddCurve(circle_points + [circle_points[0]], 3),
    rs.ObjectColor(rs.AddCurve(circle_points + [circle_points[0]], 3), [255, 0, 0]) 


####mehrere kreise gross

anzahl_kreise2 = 20  
radius2 = 15.0  
anzahl_punkte2 = 128  
delta_angle2 = 360 / anzahl_punkte2  

kreis_mittelpunkte2 = [[random.uniform(-300, 300), random.uniform(-300, 300), random.uniform(-10, 10)] for _ in range(anzahl_kreise2)]

for center2 in kreis_mittelpunkte2:
    start_vec2 = [radius2, 0, 0]  
    circle_points2 = [rs.VectorAdd(rs.VectorRotate(start_vec2, delta_angle2 * i, [0, 0, 1]), center2) for i in range(anzahl_punkte2)]
    
    rs.ObjectColor(rs.AddCurve(circle_points2 + [circle_points2[0]], 3), [255, 0, 0])  
    
    
 ###?? wie kann ich es programmieren, dass sich die Kreise nicht ueberlappen? 
### thickness?? 
