complete exercise 1.6
This commit is contained in:
parent
d6f4d5e863
commit
8e633df16f
15
1. Vectors/6. Random Walker/index.html
Normal file
15
1. Vectors/6. Random Walker/index.html
Normal file
@ -0,0 +1,15 @@
|
||||
<html>
|
||||
<head>
|
||||
<script src="https://cdn.jsdelivr.net/npm/p5@1.9.0/lib/p5.js"></script>
|
||||
<script src="sketch.js"></script>
|
||||
<style>
|
||||
body {
|
||||
background: #212121;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<main>
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
62
1. Vectors/6. Random Walker/sketch.js
Normal file
62
1. Vectors/6. Random Walker/sketch.js
Normal file
@ -0,0 +1,62 @@
|
||||
class Walker {
|
||||
constructor(x = 0, y = 0) {
|
||||
this.t = createVector(0, 10000)
|
||||
this.position = createVector(x, y)
|
||||
this.velocity = createVector(0, 0)
|
||||
this.accelaration = createVector(0, 0)
|
||||
this.topSpeed = 50
|
||||
}
|
||||
|
||||
step() {
|
||||
this.accelaration = createVector(
|
||||
map(noise(this.t.x), 0, 1, -1, 1),
|
||||
map(noise(this.t.y), 0, 1, -1, 1)
|
||||
).normalize()
|
||||
this.accelaration.mult(50)
|
||||
|
||||
const dt = deltaTime/1000
|
||||
this.velocity.add(p5.Vector.mult(this.accelaration, dt))
|
||||
this.velocity.limit(this.topSpeed)
|
||||
this.position.add(p5.Vector.mult(this.velocity, dt))
|
||||
this.t.add(createVector(dt, dt))
|
||||
|
||||
|
||||
if (this.position.x < 0) {
|
||||
this.position.x += width
|
||||
}
|
||||
if (this.position.x > width) {
|
||||
this.position.x -= width
|
||||
}
|
||||
|
||||
if (this.position.y < 0) {
|
||||
this.position.y += height
|
||||
}
|
||||
if (this.position.y > height) {
|
||||
this.position.y -= height
|
||||
}
|
||||
}
|
||||
|
||||
draw() {
|
||||
stroke(0)
|
||||
line(
|
||||
this.position.x, this.position.y,
|
||||
this.position.x + this.accelaration.x,
|
||||
this.position.y + this.accelaration.y
|
||||
)
|
||||
circle(this.position.x, this.position.y, 20)
|
||||
}
|
||||
}
|
||||
|
||||
let walker
|
||||
|
||||
function setup() {
|
||||
createCanvas(640, 240)
|
||||
background(255)
|
||||
walker = new Walker(width/2, height/2)
|
||||
}
|
||||
|
||||
function draw() {
|
||||
background(255)
|
||||
walker.step()
|
||||
walker.draw()
|
||||
}
|
Loading…
Reference in New Issue
Block a user