投稿日:2021-11-21
#Grasshopper
#Basic
今回は Grasshopper を使用する際によく使う、「Remap Numbers コンポーネント」について説明していきたいと思います。こちらのコンポーネントは使用頻度が高いのですが、やや理解しづらい方もいるかもしれません。今回は、基本的な使い方を紹介し、また別の記事では「Remap Numbers コンポーネント」の使用例として sin 波を描いたチュートリアルを作成しました。ぜひ見てみてください。
「Remap Numbers コンポーネント」とは元となる範囲(Source)を、指定した範囲(Target)に変換したときに、ある値(Value)はいくつに変換されるか(Mapped)を算出するコンポーネントとなります。
よく使われる形としては上画像の様に、あるリスト(Value)を指定した範囲(Target)でリマップした時のリストを取得する際に使用されます。上画像の例だと、「0 ~ 10」のリストを「0 ~ 1」の範囲でリマップしております。
文章だけでは全く分からないかと思いますので、図を描いて説明していこうと思います。
数字をよりシンプルにして解説していきます。1 枚目の画像について、「Source : 0 To 10」の範囲を「Target : 0 To 1」の範囲に変換したときに、「Value:5」はリマップされると 0.5 になります。
これを数直線で表すと 2 枚目の画像の様になります。 「Source : 0 To 10」の範囲 における 「Value:5」 は中間に位置するかと思います。
これを 「Target : 0 To 1」の範囲に変換したとき 、 「Value:5」 ⇒「Mapped:0.5」に変換されます。
図に描いてみると何となくわかってくるのではないでしょうか?
では少し数字をややこしくして、もう少し中身を深掘っていきます。
それでは上の画像はどうでしょうか? 1 枚目の画像は、「Source : 3 To 20」の範囲を「Target : 2 To 4」の範囲に変換したときに、「Value:19」はリマップされると 「Mapped : 3.882353......」に変換されます。
先ほどと同じように上画像 2 枚目のような数直線で描いてみましょう。
それでは上画像の様に、Value が Source の範囲外だった場合どうなるでしょうか。
「Source : 3 To 20」の範囲を「Target : 2 To 4」の範囲に変換したときに、「Value:2」はリマップされると 「Mapped :1.8823......」に変換されます。
こちらも負の領域で考えながら、先ほどと同じように求めていけば問題ありません。
それではもう1つの出力端子 Clipped はどんな値が取得できるでしょうか。
上画像 1 枚目の様に、「Source : 3 To 20」の範囲を「Target : 2 To 4」の範囲に変換したときに、「Value:2」はリマップされると 「Mapped :1.8823......」に変換され Clipped からは 「Clipped : 2」 が取得されています。
Clipped で出力される値は以下の様になります。
となっております。
以上を踏まえて、もう一度冒頭で紹介した、よく使われる形を確認してみます。
以上になります。記事の上から順番に紐解いていけば、「Remap Numbers コンポーネント」が理解できなのではないでしょうか。
こちらの記事で理解ができた方は、ぜひ以下の記事も覗いてみてください。
【参考文献】