tips009
データとツリー⑤
— Cull Pattern
Sets ▸ Sequence ▸ Cull Pattern
True と False の並びで、リストを間引くコンポーネント。True の位置が残り、False の位置が消える。
何をつなぐか
- L(List)に元のリスト、P(Cull Pattern=間引きの並び)に
True/Falseのリストをつなぐ - P は Panel に直接書いてもよいし、比較のコンポーネントが返した並びをそのままつないでもよい
ListA〜F の6個
| 番号 | 0 | 1 | 2 | 3 | 4 | 5 |
|---|---|---|---|---|---|---|
| 中身 | A | B | C | D | E | F |
① True, False を渡す
- P に
TrueFalseの2個を渡す(図①の①・オレンジの枠)
ResultP = True, False
| 残るもの | A | C | E |
|---|
2個の並びが6個に3回当てられ、1つおきに残る。
② False, True に入れ替える
- P の順番だけを入れ替える(図①の②)
ResultP = False, True
| 残るもの | B | D | F |
|---|
①で消えた B D F が、②では残る側になる。
③ 3個の並びを渡す
- P に
TrueTrueFalseの3個を渡す(図①の③・青い枠)
ResultP = True, True, False
| 中身 | A | B | C | D | E | F |
|---|---|---|---|---|---|---|
| 残るもの | A | B | — | D | E | — |
P がリストより短いときは、先頭から繰り返し当てられる。
3個の並びが 0〜2番と 3〜5番に1回ずつ当たり、表の — の位置が消える。
並びの長さで変わること
True だけ1個 | 全部残る。A〜F の6個のまま |
|---|---|
False だけ1個 | 何も残らない。出力は0個になる |
| リストより長い並び | 余った分は使われない。True, False を4回くり返して8個にしても、結果は A C E のまま |
どの長さでも警告は出ない。
コンポーネントは白いまま、結果の個数だけが変わる。
使用例
True / False は手で書かなくてよい。
比較のコンポーネントが返す並びを、そのまま P につなげる。
10から60までの6個を Larger Than(Maths ▸ Operators ▸ Larger Than)の A に、25を B につなぐ(図②の①)- その
>出力を Cull Pattern の P につなぐ(図②の②)
25。クリックで拡大。Result25 より大きいものだけ残す
| 数値 | 10 | 20 | 30 | 40 | 50 | 60 |
|---|---|---|---|---|---|---|
| 残るもの | — | — | 30 | 40 | 50 | 60 |
Larger Than が返したのは False False True True True True の6個。
先頭の2つが False なので、10 と 20 が落ちて4個になる。
使いどころ
- 並んだ柱や梁を1本おきに間引いて、ピッチを粗くする。
- 高さや面積で比べた結果を P に渡し、条件に合うものだけを残す。
TrueTrueFalseのような並びで、繰り返しのリズムを作る。
注意
P を何もつながないと、既定の False, False, True, True が使われる。
警告は出ないので、A〜F の6個なら C と D だけが黙って残る。
間引いたあとのリストは、番号が 0 から振り直される。
元の番号で何かを引き当てるなら、間引く前のリストを別に残しておく。
残した側と捨てた側を両方受け取る Dispatch は、別の tips で扱う。