문제

문제

바람개비를 그리는 문제는 반복문을 배우는데 유용하다. 또한 바람개비의 날개가 회전마다 조금씩 커지는 경우 반복문에 패턴을 사용한다. 맴맴도는 그림 또한 반복문에 쓰이는 변수를 정교하게 사용해야 한다.

해결

바람개비는 회전마다 '방향'을 증가시킨다. 즉 회전수 i에 회전각도 45를 곱하여 구한다. 바람개비가 커지는 그림은 날개의 크기를 회전마다 증가시켜야 한다. 날개의 크기는 10씩 증가시킨다. 맴맴도는 그림은 'ㄱ'과 'ㄴ'을 회전마다 조금씩 증가시키면서 그린다. 'ㄱ'은 10, 30, 50마다, 'ㄴ'은 20, 40, 60마다 커진다.

from IPython.display import Image
import os
dir=os.getcwd()
Image(filename=os.path.join(dir,'img/baram.png'))

png

# %load src/baram.py
import turtle

win=turtle.Screen()
t1=turtle.Turtle()
t1.shape('turtle')
t1.shapesize(2)

def drawGiyuk(size, angle):
    t1.setheading(0+angle)
    t1.forward(size)
    t1.right(90)
    t1.forward(size)

def drawPinwheelWing(size,angle):
    oldpos=t1.pos()
    drawGiyuk(size,angle)
    t1.penup()
    t1.setpos(oldpos)
    t1.pendown()

def drawNieunBk(size):
    t1.setheading(180)
    t1.fd(size)
    t1.right(90)
    t1.fd(size)

def drawMaem():
    t1.penup()
    t1.goto(0,0)
    t1.pendown()
    for i in range(8):
        drawGiyuk((i*2+1)*10,0)
        drawNieunBk((i*2+2)*10)

def drawBaram():
    t1.penup()
    t1.goto(-200,0)
    t1.pendown()
    for i in range(8):
        drawPinwheelWing(100,45*i)

def drawBaramB():
    t1.penup()
    t1.goto(200,0)
    t1.pendown()
    for i in range(8):
        drawPinwheelWing(100+i*10,45*i)

def main():
    drawMaem()
    drawBaram()
    drawBaramB()
    win.exitonclick()

if __name__=="__main__":
    main()

results matching ""

    No results matching ""