ラズパイ3倍美味しいブログ

ラズパイ3を美味しく食べます

ネスト(入れ子)構造使ってみる

 Processingで自分の思い描いた図形を描くことを勉強したい。
自分の思った通りの図形を数式で描いてみたいんだよう。
こういうのを考えるのは、頭の体操というか、頭の良い人はもっとスマートな式を作ることができるんだろうかとか思う。

r-dimension.xsrv.jp

for文の中に、またfor文を入れるのは、これをネスト(入れ子)構造という。
うん、習った気がする。

www.d-improvement.jp

ついでに、カラーモードをHSBモードにする方法も入れてみる。

dots.pde
--------------------------------------------------
void setup(){

size(500,500);
background(255);
noStroke();
colorMode(HSB, 360, 100, 100, 100);//HSBモード(H:360段階, S,B,Alpha:各100段階)で指定する
smooth();

for(int i=0;i<9;i+=2){
for(int j=0;j<9;j+=2){
fill(3.6*(j+1)*(i+1),100,100);
ellipse(50+j*50,50+i*50,50,50);
}
}
for(int i=1;i<9;i+=2){
for(int j=1;j<9;j+=2){
fill(3.6*(j+1)*(i+1),100,100);
ellipse(50+j*50,50+i*50,50,50);
}
}

}

void draw(){}

void keyPressed(){
if(keyCode==ENTER){
save("dots.png");
}
}
--------------------------------------------------
互い違いに並べてみる。なんかもっとまとめられそうな気もするんだけど、とりあえずこうすれば、このような法則で丸を並べられそう。

f:id:umesyurock0603:20170219111831p:plain

自分のテンションをあげたいので、iPhoneSEの壁紙にしてみる。
dots2.pde
--------------------------------------------------
void setup(){

size(640,1136);
background(0);
noStroke();
colorMode(HSB, 360, 100, 100, 100);//HSBモード(H:360段階, S,B,Alpha:各100段階)で指定する
smooth();

for(int i=0;i<(height/10)+2;i+=2){
for(int j=0;j<(width/10)+2;j+=2){
fill(3.6*(j/10+1)*(i/10+1),100,100);
ellipse(-10+j*10,-10+i*10,10,10);
}
}
for(int i=1;i<(height/10)+2;i+=2){
for(int j=1;j<(width/10)+2;j+=2){
fill(3.6*(j/10+1)*(i/10+1),100,100);
ellipse(-10+j*10,-10+i*10,10,10);
}
}

}

void draw(){}

void keyPressed(){
if(keyCode==ENTER){
save("dots2.png");
}
}
--------------------------------------------------

f:id:umesyurock0603:20170219112306p:plain

色が、もうちょっとグラデーションかけたいのだが、なんか、四角の塊が見えるような。
今回できるようになったこと
・RGBの色指定から、HSBでの色指定というものを知った。
・forの中を入れ子構造にすることができた。あとiとかjとか2つずつ大きくするということもできるようになった。i+=2という感じで。

今後の課題
・互い違いに丸を打てるようになったので、このxy値を中心として、正三角形を並べてみるとか、そういうことできないだろうか。
・もっとスマートにできるんじゃないか、という考えはいつも心の中に浮かぶ。