turtle
turtleであそびます。
turtleで四角形
turtleで四角形を書くには、直線を書いて、曲がってを4回繰り返せば四角形になる。
import turtle
turtle.shape('turtle')
def square():
for i in range(4):
turtle.forward(100)
turtle.right(90)
square()
turtle.done()
四角形をずらしながらループする
四角形をずらしながらループしたい。いきなり全部考えるとややこしいので、問題を分ける。例えば、「四角形を書く」と「ずらす」という感じ。先程のsquare()
を使えば、四角形をかけるので、これをずらしながらループさせれば書きたいものが書ける。
import turtle
turtle.shape('turtle')
def square():
for i in range(4):
turtle.forward(100)
turtle.right(90)
for i in range(10):
square()
turtle.right(10)
turtle.done()
四角形をずらしながら大きくする
四角形をずらしながら大きくさせたい。これも問題を分解すると「四角形を書く」と「ずらす」と「四角形を大きくする」に分けれそうなので、「四角形を大きくする」部分を考える。四角形を書く度に大きくする、というのは、インデックスを0,1,2とすすめる際に、四角形の大きさを連動させれば実現できそう。ループのインデックスで大きさを制御するようなイメージなので、square()
に引数をとって、ループインデックスが大きくなる度に、サイズも大きくなるようにする。
import turtle
turtle.shape('turtle')
turtle.speed(0)
def square(size):
for i in range(4):
turtle.forward(10*size)
turtle.right(90)
for i in range(30):
square(i)
turtle.right(10)
turtle.done()
三角形を書く
三角形を書きたい。これも四角形と同じで直線を書いて、曲がってを3回繰り返せば三角形になるが、曲がる角度に注意が必要。カメは内角では外角で回転するので、60ではなく120(180-60)にする必要がある。
import turtle
turtle.shape('turtle')
turtle.speed(0)
def triangle():
for i in range(3):
turtle.forward(100)
# turtle.left(180-60)
turtle.right(180-60)
triangle()
turtle.done()
多角形を書く
外角の和は360°なので、これを角の数で割れば、外角の角度が計算できる。三角形であれば360÷3=120、四角形であれば360÷4=90、15角形なら、360÷15=24ということになる。
import turtle
turtle.shape('turtle')
turtle.speed(0)
def createPolygon(theta):
for i in range(theta):
turtle.forward(50)
turtle.right(360/theta)
createPolygon(15)
turtle.done()
星型図形を書く
5つの角をもつ星型を書きたい。なので、とりあえず、どうすればよいか、紙に書いて考えてみる。曲がる回数は5回なのでループは5回必要なのが簡単にわかる。外角の角度は星の中心にある正五角形の内角の和が540°で、その1つなので108°ということから、そこは正3角形の1辺ということもわかり、外角は144°ということになるので、これをコードにする。
import turtle
turtle.shape('turtle')
turtle.speed(0)
def createStar():
for i in range(5):
turtle.forward(200)
turtle.right(144)
createStar()
turtle.done()