algorithmic modeling for Rhino
Would anyone know if there is a Python function for reparameterizing a curve (setting its domain to (0,1))? I have looked in both the RhinoScript and RhinoCommon documentation with no luck. I'm still rather new to Python so I may have missed something.
in c# it would be: curve.Domain = new Interval(0,1);
Thanks, David. From your pointer I did this:
c = rs.coercecurve(c)
i = rc.Geometry.Interval(0,1)
Seems to work.
c_ref = rs.coercecurve(c)
c_ref.Domain = rc.Geometry.Interval(0,1)
should do, too.
Usually users of the RhinoScript library use rs.CurveParameter(), that transforms a 0-1 parameter to a curve parameter. But assigning a new interval might be a good way in some cases, too.
Thanks Giulio, that makes it much clearer. I did fiddle a bit with the rs.CurveParameter() function as well. But, as you said, sometimes assigning a new interval is the way to go. Basically I was feeding a list of curves from a geometry pipeline component through a reparameterized curve parameter into the python component. Just wanted to get rid of that curve parameter in order to keep it a bit more "clean". So I think that this could be considered one of those cases you speak of :)
There seems to be an issue with setting the domain on PolyCurves (which I got from splitting a list of PolyLines). In the attached file the PolyCurves appear to have been reparameterized (if one prints their domain it is correctly shown to be 0,1). However if one plots a point at 0,5 and compares this with Grasshoppers own CurvePoint it is clear that there is something funky going on. Any ideas?
(This is running GH 0.80066 with Rhino Version 5.0 (5.1.20918.2135, 09/18/2012) by the way.)
Solved it. I had to use the PointAtNormalizedLength function instead of just PointAt. Dooh!