お世話になります。ただいまprocessingを使っており、blendMode(BLEND);とpoint();の位置について疑問が生じたため質問させていただきました。
processing
1int NUM = 10000; //配列の数 2float [] x = new float [NUM]; //X座標 3float [] y = new float [NUM]; //Y座標 4 5void setup(){ 6 size(800,600,P2D); 7 frameRate(60); 8 background(0); 9 //配列の数だけ繰り返す 10 for(int i = 0 ; i < NUM ; i++){ 11 x[i] = random(width); 12 y[i] = random(height); 13 } 14} 15 16void draw(){ 17 blendMode(ADD); //色は加算 18 stroke(63); 19 noFill(); 20 21 //配列の数だけ繰り返し 22 for(int i = 0 ; i < NUM ; i++){ 23point(x[i],y[i]); //点を描画 24 x[i] = x[i] + random( -1.0,1.0); //x座標をランダムに移動する 25 y[i] = y[i] + random( -1.0,1.0); //y座標をランダムに移動する 26 } 27 28 blendMode(BLEND); 29 noStroke(); 30 fill(0,5); 31 rect(0,0,width,height); 32}
この中の
processing
1 //配列の数だけ繰り返し 2 for(int i = 0 ; i < NUM ; i++){ 3point(x[i],y[i]); //点を描画 4 x[i] = x[i] + random( -1.0,1.0); //x座標をランダムに移動する 5 y[i] = y[i] + random( -1.0,1.0); //y座標をランダムに移動する 6 }
ここのコードでpoint();の位置はここよりも、この下のx[i]とy[i]のコードの下、つまりfor文の最後に書くべきなのではないかと感じました。xとyがランダムに移動した後に描画するべきだと思い、こう感じたのですが、このままのコードでもfor文の最後に書いても結果が同じでどうしてなんだろうと思いました。
また
processing
1blendMode(BLEND); 2 noStroke(); 3 fill(0,5); 4 rect(0,0,width,height);
何故この一連のコードでADDで加算された色をフェードアウトできるのでしょうか?おそらくなのですが、教科書でblendMode(BLEND);の説明文に線型に補完するとあり、この意味を理解できていないと感じております。
長く、読みづらくてすいません。もしわかる方がおられましたら、是非お力を貸していただきたいです。よろしくお願いいたしますm(_ _)m
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/02/06 14:55