Circle domain division is different from curve

If we try to get a range of values of a curve domain and supply as parameters for perpendicular frame creation the algorithm works fine for usual curves but for the circles it doesn’t.


image

In the second case, we get the correct results only when we multiply the range values by the radius of the curve.

image
image

I tried supplying the curve and the circle within one list and the outcoming tree of frames was correct without radius multiplication.

image
image

Why does this work like that?

It’s all about the domain of the curve. Grasshopper is funny about using the domain vs the length or some combination of the two. Right click and “reparameterize” to reset all of the curve domains to go between 0 and 1

If you use a unit circle it doesn’t work like that but if you specify a radius it uses either the radius, or the length, or a multiplication of some combination of those things. It’s not just circles either. Polylines, nurbs curves, lines, closed vs open, they all behave differently. Hence “reparameterize”

image

Thank you. I know about the reparametrization I just wanted to know what’s going on behind the scenes.

You’re seeing a difference because the circle is converted into a curve. That step changes the domain from (0 \mapsto 2\pi) to (0 \mapsto \text{length}).

This could have been more consistent, but it’s the way Rhino works and I either chose not to override it or (more likely) didn’t think about it at all.

1 Like