Grasshopper :: 数値のMinimumとMaximum
今回は、リスト内の最小値、最大値を出す方法についてです。
レシピ
Grasshopperのコンポーネントを使うと、大まかに2通りあるかと思います。
1つ目は、[Bounds]コンポーネントと[Deconstruct Domain]コンポーネントを使う方法です。
リストを[Bounds]コンポーネントでDomainにして[Deconstruct Domain]で分解することで、出力側の[Start]から最小値、[End]からは最大値が返されます。
2つ目は、[Sort List]コンポーネントと[List Item]コンポーネントを使う方法です。
[Sort List]コンポーネントの入力側の[Keys]と[Value A]に同じ値を繋ぎ、出力側は[Keys]はそのまま、[Values A]は[Reverse]させてそれぞれ[List Item]コンポーネントに繋ぐと、デフォルトで[Index]は”0″になるので、最小値と最大値がそれぞれ返されます。ちなみに、[Keys]側の値が整数でなくなっているのは、[Keys]のInputパラメーターが浮動小数点数になっているからです。
[Minimum]と[Maximum]コンポーネント
ちなみに、[Minimum]と[Maximum]というコンポーネントもありますが、こちらは2つのリストの比較する用途になるため、リスト内の最小、最大値を出すには不向きです。
またここでは割愛しますが、[Extremes]コンポーネントは、これひとつで[Minimum]と[Maximum]を出すことができ、比較するリストの数もZUIで増やすことができます。
Pythonの場合
コードは以下の通りです。
コードはいたってシンプルです。
min(x),max(x)でリスト内の最小値、最大値を返し、
enumerate(x)とif文で最小値/最大値のインデックスを抽出しています。
最小値、最大値を求めたいときは、参考にしてみてください。
使用した主なコンポーネント
- [Bounds] (Maths > Domain > Bounds)
- [Deconstruct Domain] (Maths > Domain > Deconstruct Domain)
- [Sort List] (Sets > List > Sort List)
- [List Item] (Sets > List > List Item)
- [Minimum] (Maths > Util > Minimum)
- [Maximum] (Maths > Util > Maximum)
- [Extremes] (Maths > Util > Extremes)
- [Python Script] (Maths > Script > Python Script)