AddInterpCurveで指定座標を通る曲線を作る方法|Grasshopper Python × RhinoScriptSyntax入門

AddInterpCurve

AddInterpCurve関数で、指定座標を通る曲線を作成することができます。

本記事の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=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

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

knotstyle=2

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

knotstyle=3

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

knotstyle=4

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

knotstyle=5

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

Comment

Translate »