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

Soustava pružiny a závaží ve dvou směrech

Do soustavy přidáme horizontální směr.

Chceš se zapojit do diskuze?

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

Transkript

Naše simulace se zatím pohybuje pouze vertikálně, ale chceme, aby se vlasy pohybovaly i do stran. Musíme tak do kódu přidat další rozměr. Není to těžké, stačí upravit některé proměnné, aby v nich byla hodnota X i Y. Momentálně máme pouze vertikální pozici pojmenovanou "positionY". Přidáme další, kterou pojmenujeme "positionX". Přidáme také proměnnou, která označuje horizontální složku rychlosti. Pojmenujeme ji "velocityX". Měla by mít hodnotu 0, stejně jako velocityY, protože částice začíná v klidové pozici. Přesuneme se do funkce "draw", kde zduplikujeme všechny vzorečky, aby také měly horizontální složku. Máme například vzoreček "springForceY", ale chybí "springForceX". Ten přidáme: "springForceX = -k*(positionX - anchorX)" Přidáme také proměnnou "dampingForceX". Nastavíme ji takto: "dampingForceX = damping * velocityX". Díky těmto novým proměnným můžeme přidat další výpočet síly jménem "forceX". Bude se trochu lišit od "forceY", protože nebereme v úvahu gravitaci. Gravitace působí pouze ve vertikálním směru. Vzoreček bude vypadat následovně: "forceX = springForceX - dampingForceX". Přesuneme se ke zrychlení. Přidáme proměnnou "accelerationX", která se rovná "forceX/mass". To samé uděláme s výslednou rychlostí. Přidáme proměnnou s názvem "velocityX", ta se rovná "velocityX + accelerationX * timeStep". Horizontální složku přidáme také proměnné "position". Přidáme proměnnou s názvem "positionX", která se rovná "positionX + velocityX * timeStep". Máme tak horizontální složku síly, zrychlení, rychlosti a umístění. Ještě upravíme funkci "draw", aby se částice i pružina mohly pohybovat horizontálně. Přidáme "positionX" na konec čáry připojené k částici. "positionX" také přidáme na střed kruhu, který představuje částici. Podíváme se, co se stane při spuštění simulace. 2D pohyb! V našich 3D filmech používáme také třetí složku, Z. To si můžete vyzkoušet jako bonusový projekt. Ale tady prozatím skončíme, abyste si procvičili tento kód, než se přesuneme poslednímu kroku.