Hey,
This is probably (hopefully) a very simple question, but which seems to be harder to find an answer for than it should.
I would like to draw star polygons with python (GHpython), but I can’t seem to find the command for it. Whats the Rhinocommon command for creating n-sided polygons? Is the polygon tools a macro of other commands?
Many thanks
/Jakob
Alright, no time for waiting, so here’s a simple solution for a ngon in case any1 else needs it:
def polygon(n):
sector = math.pi * 2 / n
return [Rhino.Geometry.Point3d(
math.sin(sector * i),
math.cos(sector * i),
0
) for i in range(n)]
1 Like
and heres the whole thing to make a star:
import Rhino
import math
from itertools import chain
n = int(n)`
def polygon(n, radii, rotation=0):
sector = math.pi * 2 / n
return [Rhino.Geometry.Point3d(
math.sin((sector * i) + rotation) * radii,
math.cos((sector * i) + rotation) * radii,
0
) for i in range(n)]
def star(n, r1, r2):
polyline = []
for i in zip(polygon(n, r1), polygon(n, r2, rotation=(math.pi * 2 / n) / 2)):
polyline.extend(i)
return Rhino.Geometry.PolylineCurve(polyline + [polyline[0]])
star = star(n, r1, r2)
Hi @Jakob1,
I’m surprised we haven’t exposed method to do this. I’ve added a to-do item to the pile.
https://mcneel.myjetbrains.com/youtrack/issue/RH-48105
– Dale
1 Like
nice, thanks @dale !