본문 바로가기
  • Top Genius in the world
거북이 그림

[거북이그림] 네번째 <에펠 탑>

by Mr.Algo 2024. 4. 10.
728x90
반응형

파이썬 실습창을 열 수 있습니다.실습창 열기

 

1991년에 세계문화유산으로 등재된 에펠탑( Tour Eiffel )은 매년 수백만 명이 찾는 세계적 명소입니다.  그러나 처음에는 ' 천박한 이미지의 철골 구조물' 등으로 엄청난 비난을 받았습니다.

세월이 지나면 '좋은 것은 좋은 것'입니다.

 

 

 

1. 움직이는 2점의 연결

움직이는 2점을 연결하여 봅시다.

터틀 그래픽의 화면은 수학의 좌표계와 같습니다.

화면 가운데가 원점이며, 가로(x축)는 오른쪽으로 증가하고 세로(y축)는 위로 증가합니다.

 

다음과 같이 거북이를 이동시켜봅시다.

  • 원점에 있는 거북이를 up()하여 (-150,150)으로 이동시키고, 
    down()하여 (-150, -150)으로 이동시킵니다(세로 직선이 그으집니다)..
  • 다시 up()하여 (-150, 140)로 이동시키고(앞의 점에서 밑으로 10 이동), 
    down()하여 (-140,-150)으로 이동시킵니다(밑에 점은 오른쪽을 10이동)
  • 이와 같이 위의 점은 아래로, 밑의 점은 오른쪽으로 10씩 이동하며 선을 긋습니다. 

결과는 이러합니다.

 

코드는 다음과 같습니다.

from turtle import*
shape('turtle')
speed(0)
color('green')
for i in range(0,300,10):
    up()
    goto(-150,150-i)
    down()
    goto(-150+i,-150)
done()

 

 

2. 움직이는 4점의 연결

다음 그림은 어떻게 그렸을까요?

 

왼쪽 변은 내려가고, 밑변은 오른쪽으로, 오른쪽 변은 위로, 윗변은 왼쪽으로, 다시 왼쪽 변은 아래로

이렇게 점을 이동시키면서 선을 그렸습니다.

다음은 코드입니다.

from turtle import*
shape('turtle')
speed(0)
color('green')
for i in range(0,300,10):
    up()
    goto(-150,150-i)
    down()
    goto(-150+i,-150)
    goto(150,-150+i)
    goto(150-i,150)
    goto(-150,150-i)
done()

 

 

3. 에펠탑 그리기

Tour Eiffel

가운데서 내려오는 점과 밑에서 왼쪽으로 가는 점을 연결하고,

또 가운데서 내려오는 점과 밑에서 오른쪽으로 가는 점을 연결하면 될 것 같습니다.

이렇게 코딩하였습니다.

from turtle import*
shape('turtle')
speed(0)
color('green')
for i in range(0,310,10):      # 310은 마지막 바닥의 줄
    up();     goto(0,150-i)    # 위로 가서 
    down();   goto(-i/2,-150)  # 왼쪽으로
    up();     goto(0,150-i)    # 위로 가서
    down();   goto(i/2,-150)   # 오른쪽으로
done()

 

결과는 다음과 같습니다.

거북이를 숨기려면 done() 위의 줄에 ht()를 넣으면 됩니다.  <hide turtle>

코드를 분석하여 보세요.

 

4. 도전하기

이 그림에 도전하시겠습니까?

 

더보기
from turtle import*
shape('turtle')
speed(0)
color('green')
for i in range(0,160,10):
    up();     goto(0,150-i)
    down();   goto(-i,0)
    
    up();     goto(0,150-i)
    down();   goto(i,0)
    
    up();     goto(0,-150+i)
    down();   goto(-i,0)
    
    up();     goto(0,-150+i)
    down();   goto(i,0)
ht()    
done()

 

수고하셨습니다.

오늘 끝.

728x90
반응형