MySQLのこと。

MySQLのことについてまとめているブログ。他人に見せる用でもなく、自分の勉強備忘録。検索インデックスも外してるので、辿りついた方・・・ようこそ。そんな大した情報ないですよ?!たまにアルゴリズムの練習も

turtleであそぶ

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

f:id:AZUMINO:20210122124101p:plain

四角形をずらしながらループする

四角形をずらしながらループしたい。いきなり全部考えるとややこしいので、問題を分ける。例えば、「四角形を書く」と「ずらす」という感じ。先程の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()

f:id:AZUMINO:20210122124214p:plain

四角形をずらしながら大きくする

四角形をずらしながら大きくさせたい。これも問題を分解すると「四角形を書く」と「ずらす」と「四角形を大きくする」に分けれそうなので、「四角形を大きくする」部分を考える。四角形を書く度に大きくする、というのは、インデックスを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()

f:id:AZUMINO:20210122124940p:plain

三角形を書く

三角形を書きたい。これも四角形と同じで直線を書いて、曲がってを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()

f:id:AZUMINO:20210122125415p:plain

多角形を書く

外角の和は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()

f:id:AZUMINO:20210122125900p:plain

星型図形を書く

5つの角をもつ星型を書きたい。なので、とりあえず、どうすればよいか、紙に書いて考えてみる。曲がる回数は5回なのでループは5回必要なのが簡単にわかる。外角の角度は星の中心にある正五角形の内角の和が540°で、その1つなので108°ということから、そこは正3角形の1辺ということもわかり、外角は144°ということになるので、これをコードにする。

f:id:AZUMINO:20210122225213j:plain


import turtle

turtle.shape('turtle')
turtle.speed(0)

def createStar():
    for i in range(5):
        turtle.forward(200)
        turtle.right(144)

createStar()
turtle.done()

f:id:AZUMINO:20210122225219p:plain