AddCurveで制御点を指定して曲線を作る方法|Grasshopper Python × RhinoScriptSyntax入門

AddCurve

AddCurve関数で、制御点を指定して曲線を作成することができます。

本記事のGrasshopperファイルのダウンロードはこちら

開いた曲線

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

使用コンポーネント

使用コンポーネント 1: Python 3 Script 2: Curve 3: Point 4: 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.AddCurve(pts, degree=3)
# 指定した複数の座標をもとにカーブ(曲線)を作成

points = rs.AddPoints(pts)
# 指定した複数の座標に点を作成(制御点の位置を可視化)

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.AddCurve(pts, degree=3)

curve = rs.AddCurve(pts, degree=3) では、pts に指定した座標を制御点として、曲線を作成しています。

degree では、曲線の次数(滑らかさ)を設定できます。

Python 3 Script」の右側の端子名を「curve」に設定すると、その端子から曲線データが出力されます。

今回は開いた曲線のため、「Closed」コンポーネントからは、Falseと出力されており、開いていることが分かります。

points = rs.AddPoints(pts)

points = rs.AddPoints(pts) では、pts に指定した複数の座標に点を一括で作成します。

こちらは、制御点の確認用に点を作成しています。

Python 3 Script」の右側の端子名を「points」に設定すると、その端子から点データが出力されます。

閉じた曲線

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.AddCurve(pts, degree=3)
# 指定した複数の座標をもとにカーブ(曲線)を作成

points = rs.AddPoints(pts)
# 指定した複数の座標に点を作成(制御点の位置を可視化)

1つ目例と違う部分は、pts = [(0,0,0),(10,10,0),(20,0,0),(30,10,0),(40,0,0),(0,0,0)] の部分です。

リスト内の最初と最後の座標が、(0,0,0) と一致しています。

最初と最後の座標が一致している場合、閉じた曲線になります。

そのため、「Closed」コンポーネントからは、Trueと出力されています。

Comment

Translate »