3d pijlen, sphere, torus en box. terug naar de inleiding
de 3d pijlen en primitieven in fullscreen
De schets maakt gebruik van p5.js , hydra-synth.js met mijn extra palet
objecten van de class vlieger3d.js en de superclass vormen.js
let vorm = []; let n; bs = false;
//let libs = ['includes/libs/hydra-synth.js'];
//aanmaken hydra canvas hc en hydra object
let hc = document.createElement('canvas');
hc.width = window.innerWidth;
hc.height = window.innerHeight;
let hydra = new Hydra({detectAudio: false, canvas: hc});
let pg //in pg komt de hydra texture
//start hydra begin
noise(() => 40*Math.sin(0.02*time)).color(-8, -2,1).colorama().kaleid(8).scale(10.5).out(o0)
//start hydra end
let dp1 = 0; let dp2 = 7;
function setup() {
button0 = createButton('0');
button0.position(20,30);button0.style('width','20px');
button0.mouseClicked(button0Action);
button1 = createButton('1');
button1.position(20,60);button1.style('width','20px');
button1.mouseClicked(button1Action);
buttonBS = createButton('Box <==> Sphere');
buttonBS.position(20,90);buttonBS.style('width','160px');
buttonBS.mouseClicked(buttonBSAction);
buttonD = createButton('download');
buttonD.position(20,120);buttonD.style('width','80px');
buttonD.mouseClicked(buttonDAction);
pg = createGraphics(windowWidth, windowHeight);
// pg = createGraphics(300,300);
s0.init({src:drawingContext.canvas});
createCanvas(windowWidth, windowHeight, WEBGL);
n = height/11;
let alfa =100; let sw = n/150; let sc = color(0); let z = height/10; let mode = 2;
// constructor argumenten:
// 1) n = lengte korte diagonaal, 2) h1 = lengte top naar korte diagonaal, 3) h2 = lengte punt naar korte diagonaal
// 4) d = draaipunt, 5) x positie, 6) y positie, 7) z,
// 8) mode 9) hoek x as 10) hoek, 11) kleur, 12) lijndikte sw, 13) Lijnkleur sc
// 1 2 3 4 5 6 7 8 9 10 11 12 13
vorm[0] = new Vlieger3d(4*n,-n, 2*n, dp1,-6*n, 0, z, 4, 0,-90, color(242,105,117,alfa),sw,sc);
vorm[1] = new Vlieger3d(4*n,-n, 2*n, dp2, 0, -3*n,z, 3, 0, 0, color(37,229,224,alfa),sw,sc);
vorm[2] = new Vlieger3d(4*n,-n, 2*n, dp1, 6*n, 0, z, 4, 0, 90, color(94,189,154,alfa),sw,sc);
vorm[3] = new Vlieger3d(4*n,n, -2*n, dp2, 0, 3*n,z, 3, 0, 0, color(90,150,100,alfa),sw,sc);
}
function draw() {
for (let i = 0; i < 4; i++) {vorm[i].display();}
vorm[0].dpRotLiS(vorm[0]);vorm[1].dpRotReS(vorm[1]);vorm[2].dpRotLiS(vorm[2]); vorm[3].dpRotReS(vorm[3]);
pg.drawingContext.drawImage(hc, 0 ,0, pg.width, pg.height);
texture(pg); orbitControl(5);
push();
rotateY(radians(frameCount/2));translate(-8*n, 0 ,0);
cone(2*n,2*n); pop();
if (bs) {push();rotateY(radians(-frameCount));
translate(-4*n,0);sphere(2*n);pop();}
else {push();rotateX(radians(-frameCount));
translate(0,-4*n);box(2*n);pop();}
push(); translate(4*n,0,n); torus(2*n,n,5); pop();
push(); translate(-4*n,0,n); torus(2*n,n,5);pop();
}
function windowResized() {resizeCanvas(windowWidth, windowHeight);}
function button0Action() {rectpalet(0.5,0.58,0.5,0.61).kaleid(2).out(o0);}
function button1Action() {osc(30,0.02,6).colorama(0.09).kaleid(88).kaleid(4).kaleid(10).out(o0);}
function buttonBSAction(){if(bs){bs = false;} else {bs = true;}}
function buttonDAction() {save('pijlen_primitieven.png');}