108 lines
1.9 KiB
Markdown
108 lines
1.9 KiB
Markdown
## Slide 1
|
|
|
|
```drawing
|
|
title Test Drawing!
|
|
caption This is a test
|
|
scale 2.0
|
|
buttons
|
|
frame 0 0 200 100
|
|
axes 200 100
|
|
point p1 _.oscillatingPoint([20, 20], [80, 20], 3000)
|
|
fill cyan
|
|
square p1 1000
|
|
point p2 [100, 30]
|
|
fill red
|
|
circle p2
|
|
point p3 [ _.oscillatingValue(20, 80, 3000),
|
|
_.oscillatingValue(20, 80, 3000, Math.PI/2) ]
|
|
fill green
|
|
circle p3 1000
|
|
start
|
|
```
|
|
|
|
---
|
|
|
|
## 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
|
|
``` |