Grasshopper – 関数カーブをRhino上で表現

Rhino上で関数カーブを表現したいという場合があります。

Rhinoで表現されるNURBSは、コントロールポイントの位置、次数、ウエイト値と、ノットベクトルで定義されるカーブです。
NURBSではパラメーター曲線のようなものを忠実に再現することは出来ませんが、Grasshopperを使用して近似表現することは出来ます。
以下は、対数曲線カーブを表現するGH定義ファイルです。

まず、Seriesコンポーネントを利用して、等差数列を、0.1から0.1間隔で100個生成しておきます。
次に、Evaluateコンポーネントで、等差数列を、”x”として入力、次に、対数の底として、”a”の整数で入力するようにしておきます。
後は、対数の計算式定義します。

最後に、Ptコンポーネントの、”x”入力に、生成した等差数列を、”y”入力に対数計算の結果を接続すると、100個の点群が生成されますので、IntCrvコンポーネントに接続して、次数を与えれば指定次数のNURBSカーブに近似されます。

尚、CrvGraphコンポーネントで曲率を表示すると、曲率の変化がわかります。
この例では、解を持たない、X=0に近づくと、変化が大きくNURBSで近似したカーブの曲率変化が本来の対数曲線とは違っています。
この場合、この近辺のxの値を細かく設定する必要があるでしょう。