If you're seeing this message, it means we're having trouble loading external resources on our website.

Pokud používáš webový filtr, ujisti se, že domény: *.kastatic.org and *.kasandbox.org jsou vyloučeny z filtrování.

Hlavní obsah

Začínáme s částicemi

Nejdříve si ukážeme, jak jedna částice reaguje na vliv gravitace. Kliknutím zde se podíváš na lekci Efekty.

Chceš se zapojit do diskuze?

Zatím žádné příspěvky.
Umíš anglicky? Kliknutím zobrazíš diskuzi anglické verze Khan Academy.

Transkript

V poslední lekci jsme pracovali s modelem, který imitoval chování kudrnatých vlasů. Tento efekt tvoří závaží, která jsou připevněna k pružinám. Cílem této lekce je napsat počítačový kód, který simulaci rozpohybuje. Nejprve je třeba zvážit, že použijeme některé Newtonovy vzorečky, abychom naanimovali simulace. Jejich funkcí jsme se zabývali v lekci o efektech. Začneme simulací velmi jednoduchého modelu: částicí, na kterou působí pouze gravitace a která padá z nějakého místa na obrazovce. Můj program bude simulovat tuto situaci a bude rozdělen na dvě části. Nahoře bude výchozí nastavení systému, například výchozí pozice a gravitace, a dole použijeme funkci "draw" pro animování. Nejprve stanovíme výchozí nastavení. Chceme řídit gravitaci, takže si určíme proměnnou s názvem "gravity" a nastavíme ji například na hodnotu 10, později ji můžeme měnit. Další proměnná udává závaží částice, "mass", nastavím ji na hodnotu 30. Další proměnná bude výška, ze které částice padá, tu pojmenuji "positionY". Musíme také nastavit počáteční rychlost částice, tu pojmenuji "velocityY". Její hodnotu nastavím na 0, na začátku se animace nehýbe. Potřebujeme něco, čím budeme ovládat rychlost simulace. To uděláme pomocí proměnné s názvem "timeStep", tu si představte jako čas, který uběhne mezi jednotlivými fázemi animace. Vyšší hodnota znamená, že částice mezi snímky zrychlí, nižší hodnota znamená zpomalení. Teď se zaměříme na funkci "draw". Když program spustíme, počítač jednou vykoná výchozí nastavení a poté několikrát za sekundu provede funkci draw. To znamená, že během jednoho snímku je funkce draw provedena hned několikrát. Nejprve vypočítám síly, které působí na částici. Momentálně na ni působí pouze gravitace, která směřuje dolů. Tuto sílu směřující dolů označím jako proměnnou "forceY". Newtonův druhý pohybový zákon říká, že velikost této síly bude hmotnost krát gravitace (mass * gravity) Dále pomocí této síly určím, jak moc bude částice při pádu zrychlovat. Tuto hodnotu označím jako novou proměnnou, kterou pojmenuji "accelerationY". Tuto hodnotu získám přeskládáním vzorečku f=m*a na a=f/m, čili "accelerationY = forceY/mass" Všimněte si, že hodnotu forceY jsme vypočítali v předchozím kroku. Už známe hodnotu zrychlování částice a její rychlost můžeme upravit na rovnici "velocityY = velocityY + accelerationY * timeStep". Více o této rovnici se dozvíte v naší lekci o efektech. Nezapomeňte, že proměnná rychlosti na pravé straně vzorečku nejdříve značí původní hodnotu rychlosti. Po vykonání tohoto řádku proměnná velocityY na levé straně vzorečku značí novou hodnotu rychlosti. Tuto rychlost můžeme použít k přesunutí částice na jiné místo pomocí vzorečku "positionY = positionY + velocityY * timeStep" Pravá strana vzorečku opět značí původní hodnotu rychlosti. Po vykonání tohoto řádku proměnná positionY na levé straně vzorečku značí novou hodnotu výšky. Všimněte si, že každý krok kódu pracuje s výsledkem předchozího kroku. Výpočet síly je použit pro výpočet zrychlení. Zrychlení je použito pro výpočet rychlosti. Rychlost je použita pro výpočet výšky. A teď přijde ta zábavná část: umístíme částici. To uděláme tak, že nakreslíme kruh - jeho velikost je hodnota proměnné positionY. Kreslím kruh pomocí funkce "ellipse", výška a šířka jsou stejné. Podíváme se, co se stane, když spustíme program. Jejda! Budu chtít mazat všechny předchozí kruhy, ať to nevypadá jako had. To udělám tak, že pokaždé, když se objeví nový kruh, smažu, nebo přemaluju pozadí. Tak to zkusme. To vypadá hezky! Když zvětším gravitaci, částice bude padat rychleji. To jsou Newtonovy pohybové zákony v praxi. Tady si dáme přestávku, abyste si zvykli na tento kód.