リスト内の数値を、新しく指定した範囲で変える、Remap Numbersコンポーネントの使い方について解説します。
グラスホッパー上では上の2つのどちらかで表されます。
リスト内の数値を新しく指定した範囲で変える
Remap Numbersを使うことで、リスト内の数値を新しく指定した範囲で変えることができます。
使用コンポーネント:①Bounds ②Remap Numbers
Remap NumbersのV端子には、変えたいリスト内の数値データをつなげます。
今回は、0~100のランダムな数値をつなげています。
S端子には、リスト内の数値のドメイン範囲(数値の最小値と最大値から構成される範囲)をつなげます。
今回は、Boundsで元々のリスト内の数値から、最小値の0と最大値の100から作られるドメイン範囲を作成し、S端子につなげています。
すると、初期の状態ではR端子から最大値の数値が1となるように数値が変換されました。
今回の場合、元々の数値の最大値の100が1に・それに合わせて57の数値であれば0.57と、0~1の数値に変換されています。
追加コンポーネント:①Construct Domain
初期の状態では、最大値が1に変換されていましたが、T端子を設定することで変換する最小値と最大値を変換することもできます。
T端子にも、ドメイン範囲を指定します。
このドメイン範囲が、変換後の最小値と最大値になります。
今回は、Construct Domainを使って、ドメイン範囲を作成しています。
今回の場合、Construct DomainのA端子に最小値の0、B端子に最大値の10を入力し、0~10のドメイン範囲を作成してT端子につなげています。
すると、上の画像のように元々の最大値の100が10として出力され、他の数値もそれに合わせて57が5.7・16が1.6などと変換されました。
このように、T端子で変換後の最大値と最小値を指定することができます。
出力されるデータ
Remap Numbersからは、R端子とC端子の2つのデータが出力されます。
この2つの違いは、S端子で指定した範囲を超える数値が、V端子につながれた時に現れます。
追加コンポーネント:①Multiplication
上の画像の場合、S端子には0~100のドメイン範囲がつながれています。
しかし、V端子には元々の数値にMultiplicationを使い、10の数値を掛けています。
そのため、全ての数値が10倍になっており、S端子に指定した0~100の数値を超える数値があります。
今回の場合、T端子に0~1のドメイン範囲を指定しているので、100の数値であれば1、57の場合は0.57の数値になるようになっています。
R端子の場合、1000の数値が10、570の数値が5.7と、1以上の数値も出力されています。
100の数値が1なので、1000は10というように変換されています。
しかし、C端子の場合は1000も570も1に変換されます。
これは、元々の数値の中で、S端子の0~100のドメイン範囲を超える数値は、どんなに大きな数値も最大値に変換されます。
今回の場合、1000の数値は0~100の範囲外なので、100の数値になり、それがT端子の0~1の数値に変換されるため、1になります。
追加コンポーネント:①Negative
最小値より小さい場合も、C端子では最小値に強制的に数値が変換されます。
今回は、Negativeを使い、元々の数値をマイナスに変換しています。
C端子を見てみると、S端子で指定したドメイン範囲が0~100なので、それを下回るマイナスの数値は最小値の0に変換されています。
このようにC端子からは、最大値と最小値を超える数値がある場合には、強制的に最大値と最小値の数値に変換されます。
Remap Numbersコンポーネントを使用しているグラスホッパー記事はこちら↓
コメント