05 - Emergentné systémy

simple is complex

Sa vzťahujú na komplexné vzorce alebo správanie, ktoré vznikajú interakciou jednoduchších jednotlivých zložiek alebo prvkov. Tieto vzory sú často neočakávané a nie sú explicitne naprogramované, ale vznikajú skôr ako výsledok vzťahov a interakcií medzi komponentmi. Emergencia je základným konceptom vo vede, umení a tvorivom programovaní, pretože umožňuje vytvárať zložité, dynamické a často krásne vzory, ktoré možno nájsť v rôznych oblastiach.

Príklady emergentných systémov:

  • Dav ľudí idúci rušnou ulicou

  • Vtáky letiace v kŕdli alebo ryby plávajúce v húfoch vykazujú emergentné správanie, pri ktorom sa jednotlivé živočíchy riadia niekoľkými jednoduchými pravidlami, aby vytvorili koordinované skupinové vzory.

  • Vzory počasia: Systémy počasia, ako sú hurikány a tornáda, vznikajú na základe interakcií medzi gradientmi teploty, tlaku a vlhkosti.

  • Formovanie kryštálov

Prezentatácia

Presentation by Milli Keil

Príklady

Umenie

Bridget Riley's Op Art

Sol LeWitt

DIY

Array (pole)

Pridávanie a odstraňovanie objektov v poli – push() a splice()

V JavaScripte používame polia na uloženie viacerých objektov (napr. ornament). Keď pohnete myšou, vytvoríme novú ozdobu a pridáme ju do poľa pomocou:

ornaments.push(ornament);

Príklad:

let numbers = [];
numbers.push(1);  // [1]
numbers.push(2);  // [1, 2]

Prechádzanie a aktualizácia objektov

for (let i = 0; i < ornaments.length; i++) {
  let o = ornaments[i];
  o.x += o.speedX;
  o.y += o.speedY;
  ellipse(o.x, o.y, o.size);
}

Odstránenie objektov pomocou splice()

Keď sa ozdoba dostane mimo obrazovky, odstránime ju z poľa:

ornaments.splice(i, 1);
  • splice(i, 1) odstráni 1 objekt na indexe i.

  • Ak ho neodstránime, pole sa bude neustále zväčšovať a spomalí program.

Prečo prechádzame odzadu?

Pri odstraňovaní prechádzame od konca, aby sme nepreskočili žiadne položky:

javascriptKopírovať kódfor (let i = ornaments.length - 1; i >= 0; i--) {
  if (offScreen(ornaments[i])) {
    ornaments.splice(i, 1);
  }
}

Tento prístup umožní sketch bežať plynule tým, že pridávame nové objekty cez push() a bezpečne ich odstraňujeme pomocou splice().

Sketche

Möla letí za svetlom

Last updated