提供:Japanese Scratch-Wiki

ここでは、ペンを使った正多角形の描きかたを説明する。

正三角形

まずは、正三角形を描く。正三角形の内角は60°であるから、曲がる角度は、180-60=120°であるとわかる。(図を参照)

曲がる角度は、120°となる。

一辺が100だとすると、 100歩動かす→120曲がる という動作を3回繰り返すことになるから、

@greenFlag が押されたとき::events hat
(3) 回繰り返す
(10) 歩動かす
@turnLeft (120) 度回す
end

となる。

正多角形

先ほどは正三角形に限定したが、ここでは任意の正多角形が書けるように改良する。

まず、正多角形の辺の数を変数にする。ここでは、名前を"辺の数"とする。また、一辺の長さを100とする。

そして、先ほどのブロックを改良していく。まず、どのくらいの角度曲がるのか考える。

多角形の外角の和は360°になる。

ここで知っておいてほしいのは、任意の多角形の外角の和は360°になるということである。 つまり、辺の数が3だとすると、一回で曲がる角度は 360/3=120°であるということである。よって、曲がる角度は

((360) / (辺の数))

となる。

これを 辺の数 回繰り返すから、コードは以下のようになる。(正七角形を描く場合)

@greenFlag が押されたとき::event hat
[辺の数 v] を (7) にする
(辺の数) 回繰り返す
(100) 歩動かす
@turnLeft ((360) / (辺の数)) 度回す
end

これにより、マジックナンバー(何の数だか分からない数)をなくすことができ、また 辺の数がいくつになっても一つの値を変更するだけでよくなった


定義にする

先ほど正多角形を描くプログラムを作ったので、これを少し変えて、ブロック定義にまとめる。こうすることで、もっと簡単にかけるようになる。なお、ここでは定義名を "一辺が(leng)の正(n)角形" とする。つまり、以下のようになる。

 定義 一辺が(leng)の正(n)角形
 ... // この部分はこれからつくっていく。

正多角形を描くプログラムはさっきつくったので、これに少し変更を加えればよい。具体的には、(辺の数)(n::custom)に変更して、辺の長さを(leng::custom)として定義とする。

よって、次のようになる。

定義 一辺が (leng) の正 (n) 角形
(n) 回繰り返す
(leng) 歩動かす
@turnLeft ((360) / (n)) 度回す
end
正七角形

このようにすることで、ブロックの引数を変更するだけで正多角形を描くことができる。


これを実行すると、右のようになる。

@greenFlag が押されたとき
一辺が(100)の正(7)角形::custom
Cookieは私達のサービスを提供するのに役立ちます。このサービスを使用することにより、お客様はCookieの使用に同意するものとします。