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];
  }
}