05-02 引数 8/20

こんにちわ kotaron7です

頭がたびたび痛くなるんですが、片頭痛ってやつなんですかね。気圧の関係と見せかけて、気圧ほとんど関係ないときも頭が痛くなるんですよ。スマホとかパソコンとかの見すぎかなぁ~(´;ω;`)頭痛が痛いなぁ~(´;ω;`)

ところで最近知ったんですけど、超ド級って言葉ありますよね。
何かと比較しているのか、とにかくすごい!みたいな意味で使っています。
でも普通に考えると「ド」ってなんやねんって思いませんか?
このドっていうのはもともとドレッドノートというイギリスの戦艦を意味します。
dread(恐れ) nought(ゼロ・無)というスペルでなにも恐れないという意味の戦艦で、このドレットノートを超える規模の軍艦だという意味でつかわれた超ド級がいまにも残っていて、なんでもかんでもドレットノート級の規模だ!と言っているわけですね。

さて、本編です。

練習問題5-2-1

引数について学んだので例をもとに星を追加します。

function setup() {
  createCanvas(400, 400);
  background(18, 24, 60);
  noStroke();

  drawStar(80, 90);
  drawStar(230, 70);
  drawStar(320, 150);
  drawStar(130, 230);
  drawStar(280, 300);

  //追加分
  drawStar(200,200);
  drawStar(160,40);
}

function drawStar(x, y) {
  fill(255, 230, 160);
  ellipse(x, y, 36, 10);
  ellipse(x, y, 10, 36);
}

星追加しました。めっちゃ楽になります。

練習問題5-2-2

大きさの引数 w と hを追加します。

function setup() {
  createCanvas(400, 400);
  background(18, 24, 60);
  noStroke();

  drawStar(80, 90, 30, 10);
  drawStar(230, 70, 35,10);
  drawStar(320, 150, 10,30);
  drawStar(130, 230,25,10);
  drawStar(280, 300, 30, 15);

}

function drawStar(x, y, w, h) {
  fill(255, 230, 160);
  ellipse(x, y, w, h);
  ellipse(x, y, h, w);
}

これは超ド級に楽です。ウェブサイトとかワードとかパワポとかもこういう引数はちゃめちゃに使ってる理由がよくわかりますね。無かったら笑いごとじゃないですよ大変すぎる。

練習問題5-2-3

色も引数で変えてみます。r,g,bを使います。

function setup() {
  createCanvas(400, 400);
  background(18, 24, 60);
  noStroke();

  drawStar(80, 90, 30, 10,0,30,200);
  drawStar(230, 70, 35,10,100,250,200);
  drawStar(320, 150, 10,30,40,150,200);
  drawStar(130, 230,25,10,80,120,200);
  drawStar(280, 300, 30, 10,30,200,200);

}

function drawStar(x, y, w, h, r, g, b) {
  fill(r, g, b);
  ellipse(x, y, w, h);
  ellipse(x, y, h, w);
}

bのところを200に固定したらなんとなくいい色になりました。やっぱりちょっと相性がよくなるのだろうか。

練習問題5-2-4

比率を決めることで引数をもっとわかりやすくしちゃおうぜということで、片方の長さをsize * 0.28として作ってみました。

function setup() {
  createCanvas(400, 400);
  background(18, 24, 60);
  noStroke();

  drawStar(80, 90, 40, 0, 30, 200);
  drawStar(230, 70, 40, 100, 250, 200);
  drawStar(320, 150, 40, 40, 150, 200);
  drawStar(130, 230, 40, 80, 120, 200);
  drawStar(280, 300, 40, 30, 200, 200);

}

function drawStar(x, y, size ,r, g, b) 
{
  fill(r, g, b);
  ellipse(x, y, size, size * 0.28);
  ellipse(x, y, size * 0.28, size);
}

見た目はほとんど変わってません。

ここまでくると次が楽しみになりますね。プログラムが書けてる実感もわいてきます。

コメントする