今回は、グラスホッパーで、複数の円を接線でつなげる方法を解説します。
円同士を接線でつなげるには、Tangent Lines (Ex)・Tangent Lines (In)・Tangent Arcs を使うことでできます。
こちらが、Tangent Lines (Ex)の場合です。
こちらが、Tangent Lines (In)の場合です。
こちらが、Tangent Arcsの場合です。
使い方次第で、上の画像のように、複数の円でも応用できます。
また、3つのコンポーネントの説明の後に、余分な線を消す方法も解説します。
厚みを付ける方法も解説します。
それでは、1つずつ説明していきます。
ダウンロードできるデータのご利用に関しては、利用規約をご覧ください。
円の準備
まずは円を2つ作成します。
ライノセラス上で作成してもいいですが、今回はグラスホッパー上で作成します。
使用コンポーネント:①Circle
Circleを使うことで、円を作成することができます。
P端子に、円の中心点の座標(入寮しない場合は、座標0,0,0の位置に作成される)を入力します。
R端子に、半径の数値を入力します。
今回は、半径200の円を0,0,0の位置に1つ、半径300の円を500,500,0の位置に1つ設定しました。
すると、このような2つの円が作成されました。
今回は、この2つの円を使って説明していきます。
Tangent Lines (Ex)
使用コンポーネント:①Circle ②Tangent Lines (Ex)
Tangent Lines (Ex)は、2つの円の直線の接線を作成します。
Tangent Lines (Ex)のAとB端子に、2つのCircleをつなげます。
すると、このように直線の接線が作成されました。
T1とT2端子からは、それぞれの線データが出力されます。
このように、それぞれの線データが出力されていることが分かります。
Tangent Lines (In)
使用コンポーネント:①Circle ②Tangent Lines (In)
Tangent Lines (In)では、2つの接線が交差するように作成されます。
Tangent Lines (In)のAとB端子に、2つのCircleをつなげます。
すると、このように交差する接線が作成されました。
T1とT2端子からは、それぞれの線データが出力されます。
このように、それぞれの線データが出力されていることが分かります。
Tangent Arcs
使用コンポーネント:①Circle ②Tangent Arcs
Tangent Arcsでは、半径を指定することで、曲線の接線を作成することができます。
Tangent ArcsのAとB端子に、2つのCircleをつなげます。
R端子に、半径の数値を入力します。
今回は、400を入力しています。
すると、このような曲線の接線が作成されました。
半径400の円を作成し、比べてみました。
するとこのように、半径400の円の一部が、接線に使われていることが分かります。
右側のAとB端子からは、それぞれの曲線データが出力されます。
このように、それぞれの曲線データが出力されていることが分かります。
3つ以上円がある場合
使用コンポーネント:①Circle ②Tangent系コンポーネント ③Curve
3つ以上円がある場合、それぞれのTangent系のコンポーネントに、円を組み合わせることでできます。
上の画像は、3つの円の場合です。
今回は、内側の線を表示させないため、Curveで外側の線のみ抽出しています。
すると、このような3つの円でも、同様のことができました。
余分な線を消して結合する
内側の余分な線を消して、結合したい場合もあると思います。
そこで、上の画像のような、外側の線だけ残し、結合する方法も解説します。
使用コンポーネント:①Circle ②Tangent系コンポーネント ③Curve | Curve ④Shatter ⑤List Item ⑥Join Curves
最初は、このように余分な線があるところから始めます。
Curve | Curveに、それぞれの円と、接線をつなげます。
これを、円と接線が触れている部分全てで行います。
今回は4か所なので、4つのCurve | Curveを使っています。
すると、このように円と接線の交点のデータが抽出されます。
その後、ShatterのC端子にCircle、t端子にCurve | CurveのtA端子をつなげます。
tA端子からは、点が線のどの位置位あるかというデータがあり、それをShatterを使うことで、その位置で線を分割することができます。
すると、このように接線が触れる位置で、2つの線に円が分割されました。
赤い点の位置で、円が分割されています。
その後、List Itemを使うことで、インデックス番号を指定して外側の線を抽出します。
i端子に、0か1を入力すると、外側か内側の線が抽出されるので、外側の線が抽出される数値を入力してください。
すると、このように外側の線のみが抽出されました。
最後に、Join Curvesを使い、接線とList Itemで抽出した線を結合します。
この際に、Join CurvesのC端子を右クリックし、Flattenにしてください。
今回の場合これをしないと、線が結合されません。
結果として、このように余分な線を消して、結合することができました。
厚みを付ける
使用コンポーネント:①Extrude ②Unit Z ③Cap Holes
厚みを付けたい場合は、ExtrudeのB端子につなげ、D端子に押し出す距離の数値を入力したUnit Zをつなげます。
そして、Cap holesで蓋をすることで、厚みを付けることができます。
このように、厚みを付けることができました。
今回は以上になります。