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で増やすことができます。

【参考: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)

コメントを残す