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()という関数をつくることで、コードを短くし、管理しやすくなりました。

#読書きろく

#いったところmemo