サーフェスと直線の交点を取得する、Surface | Lineの使い方について解説します。


グラスホッパー上では上の2つのどちらかで表されます。
サーフェスと直線の交点を取得する
Surface | Lineを使うことで、サーフェスと直線の交点を取得することができます。

最初の例として、上の画像のサーフェスと直線を使用します。

使用コンポーネント:①Surface ②Curve ③Surface | Line
任意のサーフェスを、Surface | Line(S)につなげます。
今回は、Surfaceに格納したサーフェスをつなげています。
任意の直線を、Surface | Line(L)につなげます。
今回は、Curveに格納した複数の直線をつなげています。

すると、上の画像のように、サーフェスと直線の交点を取得することができました。

曲線の場合で試してみます。

曲線で試した結果、エラーになります。
Surface | Lineでは、曲線は使えず、直線のみ使うことができます。
出力されるデータ
出力されるデータを見てみます。

上の画像のように、サーフェス上に直線がある場合を見てみます。

サーフェス上に直線がある場合、Surface | Line(C)からは、サーフェスと直線の交差部分の線データが出力されます。

この場合、出力される線は、サーフェスの端まで延長される状態になります。


Surface | Line(P)からは、サーフェスと直線の交点が出力されます。

Surface | Line(uv)からは、からは、サーフェスが平坦化された場合の点データが出力されます。
この場合、XとY軸から作成される作業平面上に、点データが作成されます。
Surface | Line(uv)は、サーフェスの情報を取得する際に、非常に重要になります。

追加コンポーネント:①Evaluate Surface ②Cone
Surface | Line(uv)を使った例として、Evaluate Surfaceを紹介します。
Surface | Line(uv)を、Evaluate Surface(uv)につなげます。
さらに、Surfaceを、Evaluate Surface(S)につなげます。
すると、交点部分のサーフェスの情報を取得することができます。
今回の例として、Evaluate Surface(F)から出力される、交点部分の作業平面のデータを使用してみます。
Evaluate Surface(F)を、Cone(B)につなげます。
さらに、半径の数値を、Cone(R)につなげます。
今回は、20をつなげています。
さらに、高さの数値を、Cone(L)につなげます。
今回は、50をつなげています。

すると、上の画像のように、交点地点に作成された作業平面に、円錐を作成することができました。
このように、Surface | Line(uv)を使うことで、交点地点のサーフェス情報を取得することができます。

追加コンポーネント:①Vector ②Multiplication ③Vector Display
Surface | Line(N)からは、サーフェス上の交点地点の法線ベクトルが取得されます。
上の画像は、取得したベクトルに距離を与えて、可視化するプログラミングです。
Surface | Line(N)を、Multiplication(A)につなげます。
さらに、距離の数値を、Multiplication(B)につなげます。
すると、ベクトルに距離を指定することができます。
その後、Multiplicationを、Vector Display(V)につなげます。
さらに、交点の情報を持つ、Surface | Line(P)を、Vector Display(A)につなげます。

すると、上の画像のように、ベクトルが可視化されました。
取得したベクトルは、サーフェスの交点地点の法線方向だと分かります。
Surface | Lineコンポーネントを使用しているグラスホッパー記事はこちら↓
Comment