Dies könnte Ihnen einige Ideen:
from random import random
import math
def rand_cluster(n,c,r):
"""returns n random points in disk of radius r centered at c"""
x,y = c
points = []
for i in range(n):
theta = 2*math.pi*random()
s = r*random()
points.append((x+s*math.cos(theta), y+s*math.sin(theta)))
return points
Diese Funktion auf verschiedene Weise verwendet werden können, zum Beispiel:
def rand_clusters(k,n,r, a,b,c,d):
"""return k clusters of n points each in random disks of radius r
where the centers of the disk are chosen randomly in [a,b]x[c,d]"""
clusters = []
for _ in range(k):
x = a + (b-a)*random()
y = c + (d-c)*random()
clusters.extend(rand_cluster(n,(x,y),r))
return clusters
Ein typisches alle wie
clusters = rand_clusters(4,50,0.3,0,1,0,1)
aussehen würde Dies erzeugt 4 Cluster der Größe 50 mit dem Radius 0.3
mit zufällig ausgewählten Zentren in der Einheitsquadrat. Punkte von einem typischen Lauf:
Haben Sie schon etwas probiert? – Mureinik
Ist die von Ihren Punkten begrenzte Fläche regelmäßig in der Natur? –
x = random(), y = random(), mache eine for-Schleife und speichere sie in einer Liste. – Seraf