a-16 関数(2)関数をつくる
Feb 4, 2021
a-16 関数をつくる
関数を使わずに、どせいさんを3体描きます。
void setup(){ size(500,500); } void draw(){ background(200,200,200); //どせいさん左 translate(120,120); stroke(0); strokeWeight(3); line(-10,-60, 20, -100);//毛 stroke(255,213,163); strokeWeight(70); line(0,-35,0,-45);//胴 line(0,-35,5,-35);//胴 line(0,-35,-5,-35);//胴 noStroke(); fill(248,2,42); triangle(5, -97, 10, -89, 3, -81);//リボン triangle(18, -97, 10, -89, 15, -81);//リボン fill(0); ellipse(-14,-65,8,8); ellipse(14,-65,8,8); ellipse(14,-75,14,8);//まゆげ ellipse(-14,-75,14,8);//まゆげ fill(255,213,163); ellipse(-25,-5,25,15);//あし ellipse(25,-5,25,15);//あし stroke(0); strokeWeight(2); ellipse(0,-50,30,30);//はな strokeWeight(1); line(40,-55,35,-50);//ひげ line(35,-45,40,-40);//ひげ line(-35,-50,-40,-55);//ひげ line(-40,-40,-35,-45);//ひげ //どせいさん中央 translate(120,0); stroke(0); strokeWeight(3); line(-10,-60, 20, -100);//毛 stroke(255,213,163); strokeWeight(70); line(0,-35,0,-45);//胴 line(0,-35,5,-35);//胴 line(0,-35,-5,-35);//胴 noStroke(); fill(248,2,42); triangle(5, -97, 10, -89, 3, -81);//リボン triangle(18, -97, 10, -89, 15, -81);//リボン fill(0); ellipse(-14,-65,8,8); ellipse(14,-65,8,8); ellipse(14,-75,14,8);//まゆげ ellipse(-14,-75,14,8);//まゆげ fill(255,213,163); ellipse(-25,-5,25,15);//あし ellipse(25,-5,25,15);//あし stroke(0); strokeWeight(2); ellipse(0,-50,30,30);//はな strokeWeight(1); line(40,-55,35,-50);//ひげ line(35,-45,40,-40);//ひげ line(-35,-50,-40,-55);//ひげ line(-40,-40,-35,-45);//ひげ //どせいさん右 translate(120,0); stroke(0); strokeWeight(3); line(-10,-60, 20, -100);//毛 stroke(255,213,163); strokeWeight(70); line(0,-35,0,-45);//胴 line(0,-35,5,-35);//胴 line(0,-35,-5,-35);//胴 noStroke(); fill(248,2,42); triangle(5, -97, 10, -89, 3, -81);//リボン triangle(18, -97, 10, -89, 15, -81);//リボン fill(0); ellipse(-14,-65,8,8); ellipse(14,-65,8,8); ellipse(14,-75,14,8);//まゆげ ellipse(-14,-75,14,8);//まゆげ fill(255,213,163); ellipse(-25,-5,25,15);//あし ellipse(25,-5,25,15);//あし stroke(0); strokeWeight(2); ellipse(0,-50,30,30);//はな strokeWeight(1); line(40,-55,35,-50);//ひげ line(35,-45,40,-40);//ひげ line(-35,-50,-40,-55);//ひげ line(-40,-40,-35,-45);//ひげ }
ながーいコードのすえに、どせいさんを3体できました。
2体目以降は、1体目のコピーで、translate()のみを変更しています。
例えば、ひげの位置を変えたいと思っても、3体分すべて変更しなければいけません、これを「関数」で解決します。
void setup(){ size(500,500); } void draw(){ background(200,200,200); doseisan(120,120);//どせいさん左 doseisan(120,0);//どせいさん中央 doseisan(120,0);//どせいさん右 } void doseisan(int x, int y){ translate(x,y); stroke(0); strokeWeight(3); line(-10,-60, 20, -100);//毛 stroke(255,213,163); strokeWeight(70); line(0,-35,0,-45);//胴 line(0,-35,5,-35);//胴 line(0,-35,-5,-35);//胴 noStroke(); fill(248,2,42); triangle(5, -97, 10, -89, 3, -81);//リボン triangle(18, -97, 10, -89, 15, -81);//リボン fill(0); ellipse(-14,-65,8,8); ellipse(14,-65,8,8); ellipse(14,-75,14,8);//まゆげ ellipse(-14,-75,14,8);//まゆげ fill(255,213,163); ellipse(-25,-5,25,15);//あし ellipse(25,-5,25,15);//あし stroke(0); strokeWeight(2); ellipse(0,-50,30,30);//はな strokeWeight(1); line(40,-55,35,-50);//ひげ line(35,-45,40,-40);//ひげ line(-35,-50,-40,-55);//ひげ line(-40,-40,-35,-45);//ひげ }
同じ実行結果がでました。
doseisan()という関数をつくることで、コードを短くし、管理しやすくなりました。