グラスホッパーを使っていると、線の交点を抽出したい場面があると思います。
そこで今回は、線の交点を抽出する方法を、3つ紹介します。
結論から言うと、「Curve | Curve」「Curve | Self」「Multiple Curves」を使うことで交点を抽出することができます。
![「Curve | Curve」「Curve | Self」「Multiple Curves」](https://iarchway.com/wp-content/uploads/2024/04/1-1-1024x420.png)
それでは、1つずつ見ていきましょう。
Curve | Curve
![Curve | Curve](https://iarchway.com/wp-content/uploads/2024/04/3-3-1024x420.png)
使用コンポーネント:①Curve ②Curve | Curve
Curve | Curveを使うことで、2つの線の交点を抽出することができます。
![2つの線](https://iarchway.com/wp-content/uploads/2024/04/4-3-1024x526.jpg)
まずは、交わっている2つの線を、それぞれCurveに格納します。
今回は、上の画像のような2つの線を用意しました。
![Curve | Curveにつなげる](https://iarchway.com/wp-content/uploads/2024/04/5-3-1024x420.png)
その後Curveをそれぞれ、Curve | CurveのA端子とB端子につなげます。
![2つの線の交点が抽出される](https://iarchway.com/wp-content/uploads/2024/04/6-2-1024x526.jpg)
すると、2つの線の交点が抽出されました。
![Curve | Curveから出力されるデータ](https://iarchway.com/wp-content/uploads/2024/04/7-2-1024x420.png)
使用コンポーネント:①Curve ②Curve | Curve ③Length ④Point
Curve | Curveから出力されるデータを見てみましょう。
P端子からは、交点の点データが抽出されます。
tAからは、1本目の線データのどの場所に交点があるかを教えてくれます。
Lengthを使うと、線の長さを調べることができるので、長さを見てみます。
すると、線の長さが約123だと分かりました。
tAを見てみると、約52です。
これは、交点が1つ目の123の長さの線の、約52の位置にあるということです。
一方でtBからは、2本目の線データのどの場所に交点があるかを教えてくれます。
![Reparameterize](https://iarchway.com/wp-content/uploads/2024/04/8-2-1024x420.png)
Reparameterizeにすることで、交点の位置を0~1で分かるようにできます。
Curve | CurveのAかB端子を右クリックします。
その後、Reparameterizeを選択します。
![Reparameterizeにする](https://iarchway.com/wp-content/uploads/2024/04/9-2-1024x420.png)
これをAとB端子どちらでも行います。
すると、どちらもReparameterizeにすることができました。
![線を移動](https://iarchway.com/wp-content/uploads/2024/04/10-2-2-1024x526.jpg)
今回は分かりやすくするため、交点を、1つの線の終点近くに移動させました。
![0~1で表示される](https://iarchway.com/wp-content/uploads/2024/04/11-2-1024x420.png)
するとtAとtBからは、0~1で表示されるようになりました。
0の場合は、交点が線の始点にあり、逆に1の場合は線の終点にあることを意味します。
先程、終点近くに1つの線を移動させたので、tBは約0.98と、1に非常に近い数値になりました。
Curve | Self
![Curve | Self](https://iarchway.com/wp-content/uploads/2024/04/14-2-1024x420.png)
使用コンポーネント:①Curve ②Curve | Self
Curve | Selfを使うことで、1つの線の交点を抽出することができます。
![交わっている1本の線](https://iarchway.com/wp-content/uploads/2024/04/13-3-1024x526.jpg)
上の画像のような、交わっている1本の線をCurveに格納します。
その後、CurveをCurve | SelfのC端子につなげます。
![1本の線の交点が抽出される](https://iarchway.com/wp-content/uploads/2024/04/15-3-1024x526.jpg)
すると、このように1本の線の交点が抽出されました。
![Curve | Selfから出力されるデータ](https://iarchway.com/wp-content/uploads/2024/04/16-3-1024x420.png)
使用コンポーネント:①Curve ②Curve | Self ③Length ④Point
Curve | Selfから出力されるデータを見てみましょう。
P端子からは、交点の点データが出力されます。
t端子からは、線の始点からの、交点の位置を教えてくれます。
今回の場合、線の全長は約156です。
t端子を見ると、始点から交点の距離は約16です。
もう一つは、線の約127の位置に交点があります。
Multiple Curves
![](https://iarchway.com/wp-content/uploads/2024/04/18-3-1024x420.png)
使用コンポーネント:①Curve ②Multiple Curves
Multiple Curvesを使うことで、複数の線の交点を抽出することができます。
![複数の線データ](https://iarchway.com/wp-content/uploads/2024/04/19-3-1024x526.jpg)
今回は、上の画像のような、複数の線データをCurveに格納しました。
![C端子につなげる](https://iarchway.com/wp-content/uploads/2024/04/20-2-1024x420.png)
その後、CurveをMultiple CurvesのC端子につなげます。
![複数の線の交点が抽出される](https://iarchway.com/wp-content/uploads/2024/04/21-2-1024x526.jpg)
すると、このように複数の線の交点が抽出されました。
![Multiple Curvesから出力されるデータ](https://iarchway.com/wp-content/uploads/2024/04/22-2-1024x420.png)
使用コンポーネント:①Curve ②Multiple Curves ③Point ④List Item
Multiple Curvesから出力されるデータを見てみましょう。
P端子からは、交点の点データが出力されます。
iAとiBからは、それぞれの線の交点のIndex番号が出力されます。
![1つ目の交点](https://iarchway.com/wp-content/uploads/2024/04/30-1-1024x420.png)
List Itemを使い、最初はIndex番号0の点を見てみます。
1つ目の線のiAは、0と表示されています。
![1つ目の点](https://iarchway.com/wp-content/uploads/2024/04/24-2-1024x526.jpg)
すると、1つの線の上にある、1つの交点が選択されます。
この交点のIndex番号が0です。
![2つ目の交点](https://iarchway.com/wp-content/uploads/2024/04/31-1-1024x420.png)
次は、iBを見てみます。
すると、1つ目の線のiBでは、1と表示されています。
点データのIndex番号1を見てみます。
![2つ目の点](https://iarchway.com/wp-content/uploads/2024/04/26-1-1-1024x526.jpg)
すると、1つ目の線の、2つ目の点が選択されました。
このように、iAとiBからは、どの交点のデータなのかを、Index番号から判断できます。
![交点の位置](https://iarchway.com/wp-content/uploads/2024/04/29-2-1024x420.png)
tAとtBからは、それぞれの線のどの位置に交点があるかという、位置を知ることができます。
Index番号0が線の1本目、番号1が2本目、番号2が3本目のデータになります。
今回はReparameterizeにしているので、線の長さが0~1で表されています。
まとめ
![まとめ](https://iarchway.com/wp-content/uploads/2024/04/eyecatch-2-7-1024x576.jpg)
今回は、線の交点を抽出することができる「Curve | Curve」「Curve | Self」「Multiple Curves」の3つのコンポーネントを紹介しました。
この3つのコンポーネントを活用して、交点を抽出してください。
今回は以上になります。
コメント