xxxxxxxxxx
134
let rot = 0;
let slider;
let speed;
let WIDE = 800;
let HIGH = 500;
let n = 4;
let ix,y;
let PGRID, DIST;
let cloudset = 0;
let PIXELS;
function setup() {
createCanvas(WIDE, HIGH);
pixelDensity(1);
slider = createSlider(0,100,4,1);
slider.style('width', '400px');
// Create some reference Points
PGRID = new Array(2, n);
PGRID[0] = new Array(2);
PGRID[1] = new Array(n);
for (i = 0; i < 10; i++){
PGRID[0][i] = floor(random(50,WIDE-50));
PGRID[1][i] = floor(random(50,HIGH-50));
}
// Fill the Sky (CLOUDS) with R/G value dependent on n reference Points
CLOUDS = new Array(WIDE / 5, HIGH / 5);
for (x = 0; x < WIDE / 5; x++) {
CLOUDS[x] = new Array(WIDE / 5);
for (y = 0; y < HIGH / 5; y++) {
DISTA = 0;
for (i = 0; i < n; i++) {
DISTA = DISTA + dist(x*5,y*5,PGRID[0][i],PGRID[1][i]) - 100;
ALPHA = map(DISTA/i,0,800,255,0);
CLOUDS[x][y] = ALPHA;
}
}
}
}
function draw() {
// Speed controll
speed = slider.value();
// Blue Skies
background(100,150,255);
noStroke();
fill(255,255,000);
ellipse(100,100,80);
for (x = 0; x < WIDE / 5; x++) {
for (y = 0; y < HIGH / 5; y++) {
fill(CLOUDS[x][y], CLOUDS[x][y], CLOUDS[x][y], CLOUDS[x][y]);
square(x * 5, y * 5, 5);
}
}
// Put the zero in the center
translate(width/2,height/2);
// Rotate the whole picture
rotate(speed/-1000);
// Draw Plane
// - Rudder
fill(255,255,255);
stroke(0);
strokeWeight(4)
line(0,0,0,-150);
// - CockPit
strokeWeight(1)
ellipse(0,-40,40,60);
noStroke();
// - Wings
fill(100,150,100);
quad(0,0,350,0,345,-4,0,-20);
quad(0,0,-350,0,-345,-4,0,-20);
fill(100,250,100);
quad(0,0,350,0,345,2,0,10);
quad(0,0,-350,0,-345,2,0,10);
// - Legs
strokeWeight(4);
stroke(0);
line(0,0,60,100);
line(0,0,-60,100);
// - Wheels
fill(0);
ellipse(65,100,10,40);
ellipse(-65,100,10,40);
// - the Body
fill(0,150,0);
ellipse(0,0,80,100);
// - make the Propellor Rotate
push();
rotate(rot);
// - Propellor
fill(100,100,000);
beginShape();
curveVertex(230,0);
curveVertex(200,25);
curveVertex(50,12);
curveVertex(0,0);
curveVertex(-50,-12);
curveVertex(-200,-25);
curveVertex(-230,0);
endShape();
fill(200,200,000);
beginShape();
curveVertex(0,1);
curveVertex(50,10);
curveVertex(200,20);
curveVertex(200,-20);
curveVertex(50,-5);
curveVertex(0,-1);
curveVertex(-50,10);
curveVertex(-200,20);
curveVertex(-200,-20);
curveVertex(-50,-10);
curveVertex(0,1);
endShape();
pop();
// Determine next Rotation based on Controll
rot += speed * PI/357;
// - Nose Cone
strokeWeight(40);
point(0,0);
//noLoop();
}