少し高度なプログラミング1~関数を使う

関数を使う

繰り返し出てくる処理を「関数」としてまとめると、わかりやすいプログラムを書くことができます。

void setup(){
  size(300,300);
  smooth();

  dango(50,50,0);
  dango(100,100,40);
  dango(150,150,80);
  dango(200,200,120);
  dango(250,250,160);
}

void dango(float x, float y, float t){
  ellipse(x, y, 20, 20);
  ellipse(x+20*cos(radians(t)), y-20*sin(radians(t)), 20, 20);
  ellipse(x-20*cos(radians(t)), y+20*sin(radians(t)), 20, 20);
}

12 行目から始まる dango は、丸を 3 つ並べて書く「関数」です。

関数は、関数名(dango)の後ろにカッコにくくって「引数」(ひきすう、と読む)を書きます。
関数 dango は 3 つの引数 x, y, t を取ります。

関数名: dango
内容: 半径20 pixelの丸を3つ並べて書く
引数
x 真ん中の丸の中心 x座標
y 真ん中の丸の中心 y座標
t 回転角度 (degree)

関数内では x, y, t を使って丸を3つ書く処理を行っています。

関数は 5~9 行で「使われて」います。

いままではプログラムの先頭から処理を順番に書いていましたが、
このように関数を使う場合には、setup() という名前の関数内に実際の処理を書きます。

setup() は、プログラムを実行すると(Runボタンを押すと) 1回だけ実行されます。

C言語の場合は、この「プログラムを開始すると実際に実行される関数」は main() という名前になっています。

例題

  • 画面内のランダムな位置にランダムな方向で、団子を 20 個ばかり書いてみてください。
    乱数は命令 random() で作ることができます。
    http://processing.org/referenc……ndom_.html
  • 色や大きさを指定できるようにしてください。

戻り値付の関数

関数は値を返すことができます。これを戻り値(もどりち、と読む)と言います。

例えば 次の sind という関数は degree 単位で角度を与えると、その sin 値を返す関数です。

float sind(float input){
  float answer;
  answer = sin(radians(input));
  return(answer);
}

sin の代わりに使うことができます。

関数名(sind)の前についている floatは戻り値の型を表しており、
void は「戻り値なし」の関数であることを表しています。