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.

Reklámok

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