a-15 動き(3) 乱数
Sep 8, 2020
a-15 乱数
random()は、設定した範囲内の乱数を作り出す関数
random()関数は、必ず浮動小数点数を返すので、代入演算子(=)の左側の変数はfloat型になる。
ランダムに描く
void setup(){ size(500,250); } void draw(){ background(249,221,160); for(int x = 10; x < width; x += 10){ float mx = mouseX / 10; float offsetA = random(-mx,mx); float offsetB = random(-mx,mx); line(x + offsetA,50,x - offsetB,200); stroke(234,76,37); } }
マウスがウィンドウの左側では、変化量は小さく、右側にいくほど、乱数の効果が強調される。random()関数は、forループの中にあるので、線を描くたびに新しい乱数が生成される。
ランダムに動かす
float speed = 2.5; int diameter = 20; float x; float y; void setup(){ size(500,250); x = width/2; y =height/2; } void draw(){ x += random(-speed,speed); y += random(-speed,speed); x = constrain(x,0,width); y = constrain(y,0,height); ellipse(x,y,diameter,diameter); }
円の位置は、乱数によってフレームごとに変化する。background()関数を使わない状態だと、円が移動する軌跡が残る。constrain()関数は、円をウィンドウの中に留めている。