Originate Points on a circle in space

I have a circle in 3d space, i want to randomly generate a specified number of points on its circumference. which Python Rhino API could be of use please?

@Helvetosaur

Oh, dunno, this could be done in several ways…

For example you could generate a large number of evenly spaced points on the circle using something like Divide>Number, then choose a random smaller subset of those points… Or a bunch of vectors from the circle center at random angles that intersect with the circle… Or create a bunch of random points somewhere near the circle and then pull them to the circle with ClosestPt()… All this can be done with Python + rhinoscriptsyntax no problem.

1 Like

PointAtNormalizedLength() is another method that does a bunch of stuff for you:

import rhinoscriptsyntax as rs
import scriptcontext as sc
import Rhino as R
import random

# produces n points along a curve

guid = rs.GetObject('select curve')

curve = rs.coercecurve(guid)

if curve:
    n = 100
    for i in range(n):
        point = curve.PointAtNormalizedLength(random.random())
        sc.doc.Objects.AddPoint(point)

Output:

image

3 Likes

Awesome. Thanks!