在 Dynamo 中,有两种基本方法可以创建自由形式的曲线:指定点集合,并使 Dynamo 在它们之间内插平滑曲线,或者通过指定一定阶数曲线的基本控制点的更低级别方法。当设计师确切知道线应采用的形状,或者设计是否具有特定约束来控制曲线可以和不能通过的位置时,插值曲线非常有用。通过控制点指定的曲线本质上是一系列直线线段,算法会将其平滑为最终曲线形式。对于通过不同平滑度探索曲线形状或在需要曲线段之间的平滑连续性时,通过控制点指定曲线非常有用。
pts =Point.ByCoordinates(Math.Cos(0..350..#10),Math.Sin(0..350..#10),0);// create an closed curvecrv =NurbsCurve.ByPoints(pts,true);// the same curve, if left open:crv2 =NurbsCurve.ByPoints(pts.Translate(5,0,0),false);
num_pts =6;pts =Point.ByCoordinates(1..30..#num_pts,Math.Sin(0..360..#num_pts) *4,0);// a B-Spline curve with degree 1 is a polylinectrl_curve =NurbsCurve.ByControlPoints(pts,1);
对阶数为 2 的曲线进行平滑处理,使曲线相交并与多段线线段的中点相切:
num_pts =6;pts =Point.ByCoordinates(1..30..#num_pts,Math.Sin(0..360..#num_pts) *4,0);// a B-Spline curve with degree 2 is smoothctrl_curve =NurbsCurve.ByControlPoints(pts,2);
Dynamo 支持最多 20 阶的 NURBS(非均匀有理 B 样条曲线)曲线,以下脚本说明了增加平滑级别对曲线形状的影响: