Circle domain division is different from curve

(Mesrop Andriasyan) #1

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.


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


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


Why does this work like that?

(Andy Vanmater) #2

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”


(Mesrop Andriasyan) #3

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

(David Rutten) #4

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.