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

関数を使う

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

def 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)

def dango(x, y, 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)

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

関数は
def 関数名(引数):
という書式で定義します。 関数の実体(処理)は、コロンの後のインデントされている部分です。

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

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

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

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

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

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

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

例題

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

戻り値付の関数

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

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

def sind(input):
  answer = sin(radians(input))
  return answer
}

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