\begin{equation} \def\sfrac#1#2{% \raise.75ex{\small#1}% \kern-.15em/\kern-.15em% \lower.25ex{\small#2}} \end{equation}
- Beskriver hvordan krefter forårsaker bevegelse
F = ma
- Newtons andre lov om bevegelse- Dette skal vi simulere!
- 2 dimensjoner: X og Y
- Origo: øverst til venstre
- Y-aksen er invertert (ned er positiv)
- Hvor mange piksler er en meter?
- To eller flere verdier (én per dimensjon)
- X og Y i 2D
- Kan representere: posisjon, hastighet, akselerasjon, kraft
- Hver dimensjon i en vektor er uavhengig av hver andre
- Det vil si at vi kan regne på X uavhengig av Y
$\vec{u} + \vec{v} = \left(u_x + v_x, u_y + v_y\right)$ - Tilsvarende ved subtraksjon:
$\vec{u} - \vec{v} = \left(u_x - v_x, u_y - v_y\right)$
$a\vec{u} = \left(au_x, au_y\right)$ - Tilsvarende for deling med skalar:
$\frac{\vec{u}}{a} = \left(\frac{u_x}{a}, \frac{u_y}{a}\right)$ - Eller:
$\frac{1}{a}\vec{u} = \left(\frac{1}{a}u_x, \frac{1}{a}u_y\right)$
- Lengden finner vi ved hjelp av Pythagoras læresetning
$|\vec{u}| = \sqrt{u_x^2 + u_y^2}$
- Enhetsvektor er en vektor med lengde 1
- Normalisering skalerer en vektor til en enhetsvektor
- Vektoren deles på sin lengde:
$\hat{u} = \frac{\vec{u}}{|\vec{u}|}$
- Plassering i rommet: X og Y
- Meter?
- Piksler?
- Noen krefter har posisjon (gravitasjon)
- Endring i posisjon over tid
- Meter per sekund?
$\sfrac{m}{s}$ - Piksler per sekund?
$\sfrac{px}{s}$ - Posisjon endres i X og Y
- Endring i hastighet over tid
- Meter per sekund per sekund?
$\sfrac{m}{s^2}$ - Piksler per sekund per sekund?
$\sfrac{px}{s^2}$ - Hastigheten endres i X og Y
F = ma
$1N = 1kg \sfrac{m}{s^2}$ $a = \frac{F}{m}$ $1 \frac{N}{kg} = 1 \sfrac{m}{s^2}$ - Vi ser på tyngdekraft
- En kraft som virker rett ned
- Retning på kraften er ikke avhengig av posisjon
- Representere kun som en vektor?
- Ser bort fra luftmotstand og massetetthet
- Tilnærmet konstant akselerasjon (
$9.81 \sfrac{m}{s^2}$ ) - Hvordan representere dette?
- Krefter kan ha en funksjon som returnerer akselerasjonen
- Den tar imot fysiske objekter som argument
- Disse har masse, posisjon, hastighet
- Vil fungere for andre typer krefter også
class Force {
Vector acceleration(PhysicalObject o) {
return new Vector(0, 9.81);
}
}
- En kraft som virker mot et legemes sentrum
- Avhengig av massen og avstanden til objektene
$F = G\frac{m_1m_2}{r^2}$ $a_1 = \frac{F}{m_1} = G\frac{¬{m_1}m_2}{¬{m_1}r^2} = G\frac{m_2}{r^2}$ - Tilsvarende for det andre legemet
- $G ≈ 6.674 × 10-11$
-
$G$ tilpasses programmet, prøv ut flere verdier
$\vec{r} = \vec{p_2} - \vec{p_1}$ $r^2 = \vec{r}^2 = r_x^2 + r_y^2$ - Vi kan nå regne ut akselerasjonen
- Kraften har retning
- Vi har allerede magnituden
$\vec{a_1} = \hat{r}G\frac{m_2}{r^2}$
- Regn ut akselerasjonen (summer akselerasjonen fra alle kreftene)
- Oppdater hastigheten basert på tilbakelagt tid og akselerasjonen
- Oppdater posisjonen basert på tilbakelagt tid og hastigheten
- Dere kan ta utgangspunkt i Vectors.pde
- Fyll ut funksjonene slik at de passer beskrivelsen
- Lag et program som simulerer kast med liten ball
- Bruk vektorklassen dere lagde i forrige oppgave
- Start med en hastighet og en retning på ballen (f.eks. $\vec{v} = (7, -12)$)
- Hvis du får tid, kan du:
- La brukeren “kaste” baller med musa
- Legge til en forenklet luftmotstand som en kraft (akselerasjonen bestemmes av hastigheten til ballen multiplisert med et negativt tall).
- Lag et program som simulerer to objekter i rommet og deres tiltrekning på hverandre
- Gi objektene en starthastighet og se hvordan det påvirker simuleringen
- Hvis du får tid, kan du:
- Prøve å legge til flere objekter
- La brukeren legge inn nye objekter med musa