5. Adatkezelés a Grasshopperben – Adathalmazok párosítása

Adatok párosítása

Az adatpárosítás Grasshopperben olyan probléma, amelyre nem létezik egyértelmű megoldás. A jelenség akkor áll fenn, ha egy komponent-nek különböző méretű bemeneti adatai vannak. Képzeljünk el egy olyan komponent-et, amely vonal szakaszokat rajzol pontok közé. Kettő bemeneti paramétere lesz, mindkettő térbeli pontok koordinátáit tartalmazza (Stream A és Stream B). Jelen helyzetben nem számít, hogy ezek a paraméterek honnan gyűjtik be az adatot, egy komponent nem veszi figyelembe a be- és kimeneti oldalain túl lévő folyamatokat.

gh.6.1

Amint azt az ábrán is megfigyelhetjük, különböző képpen rajzolhatunk vonalakat ezek közé a pontok közé. A Grasshopper plug-in 3 féle párosítási algoritmust támogat, de ezen kívül még számos egyedi algoritmus elkészítésére is van lehetőség.

A legegyszerűbb módja a bemeneti elemek párosával való összekötésének a „Shortest List” algoritmus, ez esetben a Stream A minden egyes eleméhez a Stream B egyetlen elemét, a párját rendeljük hozzá. Az algoritmus addig fut, amíg valamelyik adathalmazban el nem fogynak az elemek.

gh.6.2

A „Longest List” algoritmus addig fut, amíg mindegyik adatfolyamból el nem fogynak az elemek, alapesetben így viselkedik minden Grasshopper komponent:

gh.6.22

Végül, a „Cross Reference” algoritmus minden egyes elemet összeköt a másik halmaz minden egyes elemével:

gh.6.3

Ez elég kockázatos művelet, mivel a kimenetek száma hatalmas is lehet. A probléma még jelentősebb, ha több bemeneti paraméterünk is van és a változó adatszármaztatás elkezdi sokszorozni az adatotmennyiséget, de a logika ugyanaz marad.

Tegyük fel, hogy van egy Point komponent-ünk, amelyik x,y és z értékeket vesz fel meghatározott paraméterekből, amelyek a következő adatokat tartalmazzák:

X koordináta: {0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0}
Y koordináta: {0.0, 1.0, 2.0, 3.0, 4.0}
Z koordináta: {0.0, 1.0}

gh.6.4

Ha a „Shorts List” alapján párosítjuk a listát, csupán 2 pontot kapunk eredményül, mivel a Z listában csupán 2 elem szerepel. Mivel ez a legrövidebb lista, ez határozza meg a képlet kiterjedését:

gh.6.5

A „Longest List” algoritmus 10 pontot fog generálni, újra felhasználva az Y és Z adathalmazok legmagasabb értékeit:

gh.6.6

A „Cross Reference” az X halmaz minden elemhez hozzárandeli az Y és Z halmaz minden elemét, így 10 x 5 x 2 = 100 pontot kapunk eredményül:

gh.6.7

Minden komponenten beállítható, hogy engedelmeskedjen valamelyik hozzárendelési szabálynak (a beállítási panel elérhető a komponent ikonjára a jobb gombbal kattinva a kapcsolt menüből).

Van egy fontos kivétel a szabály alól. Néhány komponent egy vagy több bemenetébe adatlistát kér. Például a PolyLine komponent egy poligonvonalat húz bemeneti pontokon keresztül. Több pont a bemeneti paraméter oldalán hosszabb sokszögvonalat eredményez, nem több poligonvonalat. Azokat a bemeneti paramétereket, amelyek egynél több bemeneti értékkel működnek, Lista Paraméterek-nek nevezzük, és adatpárosításoknál nem alkalmazzuk őket.

A következő leckében a Skalár komponent-ek fajtáiról lesz szó, amelyekkel egyszerűbb vagy összetettebb matematikai műveleteket hajthatunk majd végre halmazokon, az egy nagyobb lélegzetvételű poszt lesz, érdemes lesz előtte átismételni az eddig tanultakat.

One comment

  1. Visszajelzés: 3D nyomtatott generatív szobrok | parametric | art

Vélemény, hozzászólás?

Adatok megadása vagy bejelentkezés valamelyik ikonnal:

WordPress.com Logo

Hozzászólhat a WordPress.com felhasználói fiók használatával. Kilépés / Módosítás )

Twitter kép

Hozzászólhat a Twitter felhasználói fiók használatával. Kilépés / Módosítás )

Facebook kép

Hozzászólhat a Facebook felhasználói fiók használatával. Kilépés / Módosítás )

Google+ kép

Hozzászólhat a Google+ felhasználói fiók használatával. Kilépés / Módosítás )

Kapcsolódás: %s