Vonzás-taszítás törvényein alapulú szimulációs kisérlet 2017.

 

Régóta foglalkoztatott már az, amiért végre rászántam magam arra, hogy megírjam ezt a programot. Szeretném először is néhány egyszerű példával bevezetni ,hogy miről is van szó ! J

Az egész „történet”, kisérlet a következő 3 dologra épül :  VONZÁS, TASZÍTÁS, SEMLEGESSÉG. A szimulációban részecskéket fogunk ábrázolni, amik vagy vonzzák, vagy taszítják egymást, vagy SEMELEGESEK (közömbösek) egymással.Elsőre a mágnes juthat eszünkbe ,ami  vagy vonzza, vagy taszítja a másik mágnest, vagy semleges, és nem fejt ki erőt, ha megfelelően messzi távolságban vannak egymástól.  Kis darabszám esetén persze el tudjuk képzelni, hogy hogy viselkedne egymással két mágnes, de nagy darabszám esetén már nem biztos.

 

A szimulációs program megértéséhez szeretném ábrázolni:

babú kék.jpg

Legyen ő egy részecske. Egy „kék-részecske”. A szimulációban van szerepe a színeknek, mert ezzel lehet őket megkülönböztetni egymástól.  Egyetlen létező tulajdonsága pedig legyen az, hogy eltaszítja magától a vele azonos részecskéket !

taszítás.bmp

Ha találkozik egy ugyan olyan részecskével ? Mivel a kettőjük között fellépő taszító erőt a távolságuk fordított arányával fejeztem ki (taszító erő = 1/távolság), így a távolságuk növekedésével egyre csökken ez az erő, de sosem lesz 0. Észrevettem már az elején, hogy kellene valamit beiktatni, ami megakadályozza a vég nélkül növekedő  távolságokat , mert így hiába teszünk be további részecskéket, aligha fog bármilyen az erők által léterjött ciklikusság megmutatkozni a mozgásukban, mert egész egyszerűen „szétszaladnak” a térben.

 

sok03.jpg

Ezért beiktattam egy KÖZPONTI VONZÓERŐT.

A szimulációs térben minden egyes részecskére külön-külön hat, egy a tér belseje felé ható vonzóerő. (központi vonzó erő = 1/távolság a középponttól)

 

Több „kék részecske”, és a központi vonzóerő együttese  értelemszerűen a bal oldalon látható állapotot fogja eredményezni.

 

Gyakorlatilag egy véletlenszerű kezdeti állapotban, ahol random helyezzük el a récsecskék helyzetét a síkban ,a részecskék vándorlásba kezdenek, és a középpont köré egy körgyűrűt fognak alkotni.

 

A program nem síkban, hanem térben mutatja a szimulációt. Tehát ? A körgyűrű – amit ide a példa kedvvéért rajzoltam- kivetítve térben egy gömbfelület.

 

 

 

A fenti példát követve a szimulációt igy jeleniti meg a program.100 darab kék részecske, akik mind taszitják egymást, de hat rájuk a központi vonzóerő, ezért egy gömbfelület alakzatba rendeződnek.

v5.gif

 

 

A program kezelőfelületének bal alsó sarkában lehet az egyes részecske-csoportok „identitását” állítani. Ez határozza meg az egész szimuláció mechanizmusát, hogy miként reagáljanak egymáshoz a részecskék. VONZÁS, TASZÍTÁS, SEMLEGESSÉG. -1,0,1 !

 

 

qqqq5.jpg

A bal felső sarokban az 1-es azt jelenti, hogy 1db csoport van. Mellette a 100 azt jelenti, hogy ebben a csoportban 100 részecske van. A kék négyzet a csoport színére utal, amilyen színnel a szimulációban is mutatkozik. A jobb alsó sarokban az 1-es pedig azt jelzi, hogy kék a kékhez TASZÍTÓLAG hasson. Ha 0 lenne, akkor semlegesség lenne, ha -1, akkor pedig VONZÁS.

 

 

 

Image6.jpg

 

Nézzünk egy „izgalmasabb” példát, hisz ez lenne a lényege az egésznek !

 

3 csoport van, minden csoportban 56db részecske. Zöldek, szürkék, és lilák játéka…

És akkor mi történik ?

 

·        Zöld taszítja Zöldet

·        Zöld taszítja Szürkét

·        Szürke taszítja Zöldet

·        Lila taszítja Lilát

 

 

 

 

v6.gif

 

Nézzünk még egy ennél is kaotikusabb példát, egy „bigbang-el. Miután felvérteztük a csoportokat random-tulajdonságokkal, lehetőségünk van arra, hogy egy közös pontba tegyük őket, és megfigyelhessük, milyen csoportosulások, ciklikus mozgások, hiearhia alakul ki ,hogy kezd el egyfajta rendszert felvenni egy kezdetben kaotikus elrendezés.

 

 

v7.jpg

A játékszabály:

·        Zöld taszítja zöldet,szürkét, lilát, de vonzza lila2-őt

·        Szürke taszítja lilát, pirosat, és lila2-őt

·        Lila vonzza lila2-őt

·        Piros taszítja zöldet, és lilát

·        Lila2 taszít mindenkit, kivéve pirosat

 

 

 

v7.gif

A program használata:

A felületet úgy alakítottam ki, hogy elég legyen csak az egér használata. Az egész felület interaktív, minden érték, szín módosítható kattintással, a szimulációs tér tetszőlegesen elforgatható.

 

Bal oldalon a szimulációt befolyásoló értékek állíthatók:

  • központi vonzás: középponti vonzás nagysága, minél nagyobb, annál nagyobb erővel húzza a részecskéket a központba…(negatív érték esetén értelemszerűen központi taszító erő lép fel, és szétrepülnek a részecskék)
  • bábu mérete: bábú megjelenítésének nagysága. Minél több részecskét jelenítünk meg, érdemes az átláthatóság miatt kisebbre venni ezt az értéket.
  • elmozdítás nagysága: az egymásra ható erők egységes szorzója. valójában a mozgások sebességével arányos, minél nagyobb az érték, annál gyorsabb mozgás.
  • grafika nagyság: látvány kicsinyítés/nagyítás
  • auto forgatás: ahhoz, hogy minél jobban lehessen érzékelni a teret, a szimulációs tér, és vele együtt az összes részecske egy állandó forgatásnak van kitéve. Ha 0,akkor nem forog. Minél nagyobb, annál gyorsabban.
  • max babuk: az összes részecske darabszáma,  ami egyszerre szerepelhet a szimulációban

 

 

 

Jobb oldalon pedig parancsok adhatók ki:

  • random erők generálása: véletlenszerűen állítja be a bábúk egymáshoz való vonzás-taszítás-semlegességi identitást.
  • random erők vonzás nélkül: ugyan az, mint előbbi, csak nem használ vonzást (-1), így elkerülhetők azok az állapotok, amikor egymásbazuhannak a részecskék.
  • random darabszám: a bal menuben beállított „max bábúk száma” alapján ad random létszámot a csoportoknak úgy hogy a két csoport látszáma a beállított max bábuk száma legyen. pl ha 2 csoport van és 100 a max bábuk száma ,akkor erre a parancsra pl 20-80 ,61-39,11-89 arányban adja a két csoport darabszámát.
  • egyenlő darabszám:  értelemszereűen azonos létszámra osztja a csoportokat. Ha a 100 a max bábuk száma, és két csoport van, akkor 50-50. Ha 3 csoport, akkor 33-33-33.
  • bábuk helyzete 0-ra: erre a parancsra egy pontba teszi az összes részecske pozicióját.
  • bábuk helyzete random kockába: random új poziciót ad a  részecskéknek a szimulációs téren belül.

 

 

Az egér a felület jobb szélére mozgatva eltüntet minden szöveget a képernyőn, és csak a szimuláció lesz látható !

 

Letöltés : szimulacio.zip (470kb)

A program minden Windows alól indítható !