[Grasshopper]ランダムな数値を出力するRandomの使い方

[Grasshopper]ランダムな数値を出力するRandomの使い方 grasshopper

ランダムな数値を出力する、Randomコンポーネントの使い方について解説します。

見え方1
見え方2

グラスホッパー上では上の2つのどちらかで表されます。

今回使用したグラスホッパーのデータダウンロードはこちら

ダウンロードできるデータのご利用に関しては、利用規約をご覧ください。


本記事では、コンポーネントはアイコン表示になっています。


ランダムな数値を出力する

Randomを使うことで、ランダムな数値を出力することができます。

ランダムな数値を出力する

RandomのR端子には、数値の範囲を入力します。

最初は、Construct Domainを使い、0~100の範囲を作成しています。

N端子には、出力する数値の数を入力します。

最初は、10を入力しています。

S端子には、ランダムさを変えるシード値の数値を入力します。

もし0~100の数値をNumber Sliderに入力した場合、数値を変えることで100通りのランダム数を生み出すことができます。

最初は、20を入力しました。

すると、上の画像の場合、0~100の範囲内で、10個の数値がランダムで作成されました。

R端子の数値の範囲は文字で指定できる

R端子の数値の範囲は、文字で指定することもできます。

Panelに、数値 To 数値を入力することで、この方法でも範囲を指定できます。

上の画像の場合は、0 To 100と入力しています。

範囲を変更

範囲の最大値を、100から50までに変更してみました。

すると、出力される数値は50を超えなくなりました。

出力される数を増やす

N端子の数値を増やすと、出力される数値の数を増やすことができます。

今回は、数値を10から20に変更しました。

すると、20個の数値が出力されました。

5個だけ出力

数値を5にすると、5つだけ数値が出力されました。

シード値を変える

S端子の数値を変更すると、出力される数値のランダムさが変わりました。

上の画像は、シード値を50にした場合です。

シード値変更2

シード値が79の場合です。

Randomの使用例

Randomの使用例

Randomを使って、上の画像のような例を作成してみます。

今回使用したグラスホッパーのデータダウンロードはこちら

ダウンロードできるデータのご利用に関しては、利用規約をご覧ください。

例題の全体コンポーネント
画像をクリックして拡大して見る

使用コンポーネント:①RectangleSurfaceDivide Domain²IsotrimAreaMultiplication ⑦Random ⑧ScaleDeconstruct BrepCurveRuled Surface

Rectangle

まずは、Rectangleを使い、四角形を作成します。

今回は、RectangleのXとYに100を入力し、辺の長さを100にしました。

Surface

次にRectangleSurfaceをつなぎ、四角形をサーフェスにします。

サーフェスを分割

その後、Divide Domain²Isotrimを使い、サーフェスを分割します。

SurfaceDivide Domain²のI端子につなげます。

今回はUとV端子に10を入力し、10×10で分割しました。

SurfaceIsotrimのS端子につなげ、D端子にDivide Domain²をつなげます。

サーフェスが分割された

すると、サーフェスが分割されました。

Area

IsotrimAreaにつなげると、それぞれの分割されたサーフェスの中心点を取得できます。

分割した数値で掛け算する

その後、Divide Domain²で使った分割数の10を、MultiplicationのAとB端子につなげ、掛け算します。

そして、RandomのRの範囲を0~1にします。

N端子には、Multiplicationをつなげます。

S端子には、適当なシード値を入力します。

すると、0~1のランダムな数値が作成されます。

これは、この後のスケールを変える際の倍率になります。

Scale

そして、ScaleのG端子に、Isotrimをつなげます。

C端子に、AreaのC端子をつなげます。

F端子に、Randomをつなげます。

これで、ランダムにそれぞれのサーフェスの大きさが変わりました。

線を抽出する

その後、元々のサーフェスと、サイズを変えた後のサーフェスにDeconstruct Brepを使い、枠線を抽出します。

そして、Deconstruct BrepのE端子に、それぞれCurveをつなげます。

枠線が抽出された

このように、枠線が抽出されました。

Ruled Surface

最後に、Ruled Surfaceに2つのCurveをつなげると、2つの枠線をつなぐサーフェスが作成されます。

これで完成です。

Randomコンポーネントを使用しているグラスホッパー記事はこちら↓

コメント

Translate »
タイトルとURLをコピーしました