Sphere
What
球体内部のコロニー、核を持つ球体、2つの核を持つ球体、球面をイメージした作品です。
それぞれほとんど同じコードで書けるのでセレクトボックスから選択できるようにしました。
How
var w = 400;
var h = 400;
var balls = new Array(1000);
var r = 150;
var select;
function setup() {
createCanvas(w, h);
select = createSelect();
select.position(10,10);
select.option("Colony");
select.option("Core");
select.option("2Core");
select.option("Surface");
select.changed(reset);
reset();
}
function draw() {
background(0);
var t = frameCount;
push();
translate(w/2,h/2);
noStroke();
fill(255, 100);
for(i=0;i < balls.length;i++){
var x = balls[i][0] * sin(frameCount / 50 + balls[i][2]);
var y = balls[i][1];
ellipse(x, y, 1);
}
pop();
}
function reset(){
var item = select.value();
for(i=0; i < balls.length;i++){
if(item === "2Core"){
var s1 = random([r, r/2,r/3]);
}else if(item === "Core"){
var s1 = random([r, r/3]);
}else if(item === "Surface"){
var s1 = r;
}else{
var s1 = random(r);
}
var s2 = TWO_PI/360 * random(360);
var s3 = TWO_PI/360 * random(360);
balls[i] = [s1 * cos(s2), s1 * sin(s2), s3, s1];
}
}