在 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 雲形線) 曲線,以下腳本說明增加平滑程度對曲線造型的影響: