1225

Twitter:@dn0t_ GitHub:@ogrew

【週刊p5js】work09

var points = [];
var bg = [255,96,148];
var pal = [
  [255,191,38], 
  [73,117,122], 
  [37,34,47],
  [210,238,215]
];

var vScale = 0.005;
var time;

function setup() {
  chores();
  for (let x = -6; x <= 6; x += 0.1) {
    for (let y = -6; y <= 6; y += 0.1) {
      let v = createVector(x + randomGaussian() * 0.05, y + randomGaussian() * 0.05);
      append(points, v);
    }
  }
}

function chores() {
  createCanvas(900, 900);
  noFill();
  background(bg[0], bg[1], bg[2]);
  smooth(10);
  time = 0;
}

function draw() {
  let idx = 0;
  for (let i = 0; i < points.length; i++) {
    let p = points[i];
    let xx = map(p.x, -7, 7, 0, width);
    let yy = map(p.y, -7, 7, 0, height);

    let cn = (int)(100 * 4 * noise(idx)) % 4;
    let cc = pal[cn];
    let rnd = random(1, 5);
    strokeWeight(int(rnd));
    stroke(cc[0], cc[1], cc[2], 25);
    point(xx, yy);

    let v = affect(p);

    p.x += vScale * v.x;
    p.y += vScale * v.y;

    idx++;
  }
  time += 0.001;
}

function affect(point) {
  let n1 = 2 * map(noise(point.x/12,point.y/12), 0, 1, -1, 1);
  let n2 = 14 * map(noise(point.y/2,point.x/2), 0 ,1, -1, 1);  
  let n = 210 * time * map(noise(n1,n2), 0, 1, -1, 1);
  let v = createVector(cos(n), sin(n));
  return v;
}

f:id:taiga006:20200329210419j:plain

今週の作品メモ

  • 前回から引き続きベクトル場って激アツじゃない?
  • ググってたら出てきたこちらのサイトの作品をほとんど写経する形になってしまった。(反省)が結構収穫はあった。
  • あらためてベクトル場の表現は無限に可能性を感じざるを得ない。 generateme.wordpress.com
  • まあ、今週は普段のラジオ編集以外にも後述するようにMVとか作っていたのでご了承ください🙇

今週の雑談

  • Citrus in the rainの1st single「ミッドナイトデート」のMVを製作しました🎉🎉🎉 www.youtube.com
  • というかメンバーになりました。今後も"しといん"(非公式)のメンバーとして活動していく予定です。よろしくお願いします。
  • Skream!にもデビュー作品を取り上げていただきました!やったね! skream.jp
  • 350canが気が付けば第31回を迎えています!好きな漫画の話をしました。聞いてね。