読者です 読者をやめる 読者になる 読者になる

おるたなブログ

デザインとかプログラミングとか

Processing習作1

NATURE OF CODE を買ったので久しぶりにProcessingを触ってみた

Nature of Code -Processingではじめる自然現象のシミュレーション-

Nature of Code -Processingではじめる自然現象のシミュレーション-

f:id:musign:20160911215658p:plain

以下コード

import java.util.Random;
Random xGen;
Random yGen;
Random colorGen;

void setup() {
  size(640, 360);
  background(255,255,255);
  xGen = new Random();
  yGen = new Random();
  colorGen = new Random();
}

void draw() {
  float xNum = (float) xGen.nextGaussian();
  float yNum = (float) yGen.nextGaussian();
  float colorNum = (float) colorGen.nextGaussian();

  float sd = 60;
  float xMean = 320;
  float yMean = 180;
  
  float x = sd * xNum + xMean;
  float y = sd * yNum + yMean;
  int h = int(sd * colorNum + 100); 

  println(colorNum);

  noStroke();
  colorMode(HSB);
  fill(h, 255 ,255, 10);
  ellipse(x, y, 50, 50);
}

高校の時真面目に数学をやらなかったが、初めてΣの意味が理解できて感動した。

x軸に対してもっと全体的に描画させたいのだけどそうすれば良いのだろう。

追記

いじった

void draw() {
  float xNum = (float) xGen.nextGaussian();
  float yNum = (float) yGen.nextGaussian();
  float colorNum = (float) colorGen.nextGaussian();

  float xMean = 320;
  float yMean = 180;
  
  float x = 80 * xNum + xMean;
  float y = 45 * yNum + yMean;
  int h = int(60 * colorNum + 122); 

  println(colorNum);

  noStroke();
  colorMode(HSB);
  fill(h, 255 ,255, 10);
  ellipse(x, y, 50, 50);
}

f:id:musign:20160911231434p:plain