physics/test.md

108 lines
1.9 KiB
Markdown
Raw Normal View History

2024-06-22 15:01:10 -05:00
## Slide 1
2024-06-21 20:11:48 -05:00
```drawing
title Test Drawing!
caption This is a test
2024-06-22 15:01:10 -05:00
scale 2.0
2024-06-21 20:11:48 -05:00
buttons
frame 0 0 200 100
axes 200 100
2024-06-21 20:18:28 -05:00
point p1 _.oscillatingPoint([20, 20], [80, 20], 3000)
2024-06-21 20:11:48 -05:00
fill cyan
square p1 1000
point p2 [100, 30]
fill red
circle p2
2024-06-21 20:18:28 -05:00
point p3 [ _.oscillatingValue(20, 80, 3000),
_.oscillatingValue(20, 80, 3000, Math.PI/2) ]
2024-06-21 20:11:48 -05:00
fill green
circle p3 1000
start
2024-06-22 15:01:10 -05:00
```
---
## Slide 2
```drawing
title Sine Wave
caption `y = sin(x)`
scale 64
frame 0 -1 2*Math.PI 1
stroke black 4
eval _.line([0, -1], [0, 1])
eval _.line([0, 0], [2*Math.PI, 0])
stroke red 2
func Math.sin(x)
```
---
## Slide 3
```drawing
title Oscillating Sine Wave
caption `y = sin(x) * sin(t)`
scale 64
frame 0 -1 2*Math.PI 1
stroke black 4
eval _.line([0, -1], [0, 1])
eval _.line([0, 0], [2*Math.PI, 0])
stroke red 2
func Math.sin(x) * _.oscillatingValue(-1, 1, 500)
start
```
---
## Slide 4
```drawing
title Travelling Sine Wave
caption `y = sin(x + t)`
scale 64
frame 0 -1 2*Math.PI 1
stroke black 4
eval _.line([0, -1], [0, 1])
eval _.line([0, 0], [2*Math.PI, 0])
stroke red 2
func Math.sin(x + 2*Math.PI*_.t / 1000)
start
```
---
## Slide 5
```drawing
title Projectile
caption `y = v_(0y) * t - g * t^2`<br>`x = v_(0x) * t`
scale 2
frame 0 0 300 100
stroke black 4
eval _.polyline([0, 100], [0, 0], [300, 0]);
value v0 75
value angle Math.PI / 4
value v0x _.getValue('v0') * Math.cos(_.getValue('angle'))
value v0y _.getValue('v0') * Math.sin(_.getValue('angle'))
point p1 (function() {
const t = _.t / 1000;
const x = _.getValue('v0x') * t;
const y = _.getValue('v0y') * t - 9.81 * t**2;
if (t > 0 && (y <= 0 || x >= _.frame[1][0])) {
_.stop();
_.t = 0;
}
return [x, y];
})()
stroke green 1
eval _.line([0, 0], [_.getValue('v0x'), _.getValue('v0y')])
fill blue
eval const projectile = d.circle('p1', {trace: {age: -1}});
d.onStart(() => {
if (d.t == 0) {
projectile.reset();
}
})
start
```