《Processing 番外編》 描画/円
May 11, 2019
描画 円など
円や半円(arc)の基本的描画については《Processing 番外編》 円/基礎を参照ください。
三角関数を使って円の描画
size(500,500); background(250,220,225); strokeWeight(5); smooth(); float radius=100; int Ax=250; int Ay=250; stroke(250,223,98); noFill(); ellipse(Ax,Ay,radius*2,radius*2); stroke(249,124,122); float x,y; float Bx=-999; float By=-999; for(float ang =0;ang<=360;ang+=10){ float rad =radians(ang); x=Ax+(radius*cos(rad)); y=Ay+(radius*sin(rad)); point(x,y); }
螺旋(らせん)の描画
size(500,500); background(250,220,225); strokeWeight(5); smooth(); float radius=100; int Ax=250; int Ay=250; stroke(249,124,122); noFill(); ellipse(Ax,Ay,radius*2,radius*2); radius=10; float x,y; float Bx=-999; float By=-999; for(float ang =0;ang<=1800;ang+=5){ radius+=0.2; float rad =radians(ang); x=Ax+(radius*cos(rad)); y=Ay+(radius*sin(rad)); if(Bx>-999){ line(x,y,Bx,By); } Bx=x; By=y; By=y; }
螺旋(らせん)の描画/ノイズ
size(500,500); background(250,220,225); strokeWeight(5); smooth(); float radius=100; int Ax=250; int Ay=250; stroke(249,124,122); noFill(); ellipse(Ax,Ay,radius*2,radius*2); radius=10; float x,y; float Bx=-999; float By=-999; float Noise=random(10); for(float ang =0;ang<=1800;ang+=5){ Noise+=0.05; radius+=0.5; float thisRadius=radius+(noise(Noise)*200)-100; float rad =radians(ang); x=Ax+(thisRadius*cos(rad)); y=Ay+(thisRadius*sin(rad)); if(Bx>-999){ line(x,y,Bx,By); } Bx=x; By=y; }
螺旋(らせん)の描画/ノイズver.2
size(500,500); background(250,220,225); strokeWeight(0.5); smooth(); int Ax=250; int Ay=250; float x,y; for(int i =0;i<100;i++){ float Bx=-999; float By=-999; float Noise=random(10); float radius= 10; stroke(random(20),random(50),random(70),80); stroke(249,124,122); int start=int(random(360)); int end=1800+int(random(1800)); int step=5+int(random(3)); for(float ang =start;ang<=end;ang+=step){ Noise+=0.05; radius+=0.5; float thisRadius=radius+(noise(Noise)*200)-100; float rad =radians(ang); x=Ax+(thisRadius*cos(rad)); y=Ay+(thisRadius*sin(rad)); if(Bx>-999){ line(x,y,Bx,By); } Bx=x; By=y; } }