xxxxxxxxxx
39
var vehicles;
function setup() {
createCanvas(400, 400);
vehicles= [];
for(var i = 0; i < 10; i++) {
var v = {
xNoise: new NoiseLoop(random(0.1, 1), -width / 2, width / 2),
yNoise: new NoiseLoop(random(0.1, 1), -height / 2, height / 2),
angle: 0
}
vehicles.push(v);
}
}
function draw() {
background(220);
noFill();
stroke(255, 0, 255);
for(var i = 0; i < vehicles.length; i++) {
var v = vehicles[i];
ellipse(v.xNoise.value(v.angle), v.yNoise.value(v.angle), 16, 16);
v.angle += radians(1);
}
}
function NoiseLoop(diameter, min, max) {
this.diameter = diameter;
this.min = min;
this.max = max;
this.cx = random(0, 1000);
this.cy = random(0, 1000);
}
NoiseLoop.prototype.value = function(angle) {
var xOff = map(sin(angle), 0, 1, this.cx, this.cx + this.diameter);
var yOff = map(cos(angle), 0, 1, this.cy, this.cy + this.diameter);
return map(noise(xOff, yOff, 0), -1, 1, this.min, this.max);
}