AddInterpCurveAddInterpCurve関数で、指定座標を通る曲線を作成することができます。
本記事のGrasshopperファイルのダウンロードはこちら

1つ目の例では、上の画像のように、開いた曲線を作成します。

使用コンポーネント 1: Python 3 Script 2: Curve 3: Closed
import rhinoscriptsyntax as rs
# RhinoをPythonから操作するためのライブラリを読み込む
pts = [(0,0,0),(10,10,0),(20,0,0),(30,10,0),(40,0,0)]
# 複数の点の座標(X, Y, Z)をリストとして定義
curve = rs.AddInterpCurve(pts, degree=3, knotstyle=3)
# 指定した複数の座標を順番に結ぶ曲線を作成「Python 3 Script」には、上記のコードが記載されています。
順番に、コードの解説をしていきます。
pts = [(0,0,0),(10,10,0),(20,0,0),(30,10,0),(40,0,0)]pts = [(0,0,0),(10,10,0),(20,0,0),(30,10,0),(40,0,0)] は、曲線が通る複数の座標を、リストとしてまとめたものです。
curve = rs.AddInterpCurve(pts, degree=3, knotstyle=3)curve = rs.AddInterpCurve(pts, degree=3, knotstyle=3) は、pts にまとめた複数の点を順番に結んで曲線を作成し、curve に代入します。
「Python 3 Script」の右側の端子名を「curve」に設定すると、その端子から曲線データが出力されます。
knotstyle= では、ノットスタイルを設定できます(2つ目の例で解説)。
degree= では、次数(曲線の滑らかさを決める数値)を設定できます。

上の画像は、degree=2 に設定した様子です。

上の画像は、degree=1 に設定した様子です。
1つ目の例は、開いた曲線です。
そのため、「Closed」コンポーネントからは、Falseと出力されており、開いていることが分かります。

2つ目の例では、上の画像のように、閉じた曲線を作成します。

import rhinoscriptsyntax as rs
# RhinoをPythonから操作するためのライブラリを読み込む
pts = [(0,0,0),(10,10,0),(20,0,0),(30,10,0),(40,0,0),(0,0,0)]
# 複数の点の座標(X, Y, Z)をリストとして定義
curve = rs.AddInterpCurve(pts, degree=3, knotstyle=3)
# 指定した複数の座標を順番に結ぶ曲線を作成「Python 3 Script」には、上記のコードが記載されています。
pts = [(0,0,0),(10,10,0),(20,0,0),(30,10,0),(40,0,0),(0,0,0)] の座標が、先程と変わっています。
一番最初の座標と、一番最後の座標を見てみると、座標が一致していることが分かります。
この場合、閉じた曲線になります。
「Closed」コンポーネントからは、Trueと出力されており、閉じていることが分かります。

knotstyle= では、ノットスタイルを設定できます。
ノットスタイルは、曲線の制御点を通る際のパラメータ割り振りの方式で、選ぶと曲線の滑らかさや形の均一感が変わります。
Uniform(均等)、Chord(弦長比例)、Periodic Uniform(周期・均等)は、主に開いた曲線に使います。
Periodic Uniform(周期・均等)、Periodic Chord(周期・弦長比例)、Periodic Sqrt(周期・距離平方根)は、主に閉じた曲線に使います。
上の画像は、knotstyle=0 のUniform(均等)に設定した様子です。

上の画像は、knotstyle=1 のChord(弦長比例)に設定した様子です。

上の画像は、knotstyle=2 のSqrt(距離平方根)に設定した様子です。

上の画像は、knotstyle=3 のPeriodic Uniform(周期・均等)に設定した様子です。

上の画像は、knotstyle=4 のPeriodic Chord(周期・弦長比例)に設定した様子です。

上の画像は、knotstyle=5 のPeriodic Sqrt(周期・距離平方根)に設定した様子です。




Comment