Ohjelmoinnin peruskurssi Y2, kurssimateriaali

Aihepiiri: simulaatiot

Etusivulle

Aihepiiri: simulaatiot

Parvisimulaatio


Tee parvisimulaatio, jossa liikkuu käyttäjän valitsema määrä yksilöitä, esim. parvessa lentäviä lintuja. Ohjelma visualisoi lintujen liikettä graafisesti.

Lintujen liikkeiden kuvaamisen suhteen voit rajoittua kaksiuloitteiseen maailmaan kuvaamalla lintujen liikkeen ylhäältä päin. Lintuparvea on helppo simuloida antamalla kullekin linnulle kolme yksinkertaista sääntöä, joiden mukaan se valitsee kulkusuuntansa. Kun lintuja on useita ja ne toimivat samojen sisäisten sääntöjensä mukaisesti, niiden yhteistoiminta muistuttaa oikeiden lintujen parvikäyttäytymistä.

Seuraavia kolmea sääntöä voidaan käyttää tässä tehtävässä lintujen ohjaamiseen:

  • vältä törmäilyä muihin lintuihin (Separation)
  • lennä samaa nopeutta kuin muu parvi keskimäärin (Alignment) Tässä tapauksessa nopeus käsitetään vektorina, joka kertoo sekä suunnan että vauhdin.
  • pyri kohti parven keskipistettä (Cohesion)

Luonnollisen käyttäytymisen saavuttamiseksi yllä esitettyjä sääntöjä kannattaa soveltaa edellä esitetyssä tärkeysjärjestyksessä. Kokeile yhdistellä ominaisuuksia laskemalla niitä yhteen eri painokertoimilla.

Huom! Aloita työ lukemalla Craig Reynoldin artikkeli "Steering behaviors for autonomous characters" http://www.red3d.com/cwr/steer/gdc99/.

Pyri toteuttamaan artikkelissa kuvattu "simple vehicle model" suhteellisen tarkkaan. Suuri osa tämän aiheen ongelmista liittyy siihen että jollain tavoin sovellettu malli ei tuotakaan haluttua käyttäytymistä.

Vaatimukset

Keskivaikea-vaativa

VAROITUS : reaaliaikaisen simulaation toteutukseen tarvitset säikeitä (threads) niiden toimintaa esitellään luennoilla kurssiaikataulun mukaisesti

Lähteet

Sääntöjen toteutuksessa voit käyttää apuna Craig Reynoldsin ajatuksia ja muuta viitemateriaalia:

Muutaman mainittujen linkkien takana piilevän termin selvennys:

Etusivulle