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

[거북이그림] 두번째 <다각형 놀이>

by Mr.Algo 2024. 3. 31.
728x90
반응형

 

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

 

 

1. 원 그리기

원 그리기 구문입니다.

circle(radius, extent=None, steps=None)
           radius – a number                       반지름 - 숫자
           extent – a number (or None)      범위     - 숫자(또는 None)
           steps – an integer (or None)       증가값 - 숫자(또는 None) 
  • 현재의 거북이 위치에서 그리기 시작합니다.
  • 범위 (각도)는 원을 그리는 각도입니다. 범위가 주어지지 않으면 전체 원을 그립니다. 반지름이 양수 이면 시계 반대 방향으로 호를 그리며 , 그렇지 않으면 시계 방향으로 호를 그립니다.
  • 증가값은 원 한 바퀴를 나눈 값입니다. 삼각형은 증가값이 3이 됩니다. 정다각형을 그리는데 사용할 수 있습니다.

다음 코드를 실행하여 보세요.

from turtle import*
shape('turtle')
circle(100)
done()

 

반지름 100인 원을 그립니다.

 

● 시작 위치를 바꿀 수 있습니다.

새로운 그림을 그릴 때는 열린 창(도화지)를 닫음 다음에 실핼하세요.

에러가 발생되면 한번 더 실행하고, 두번 실행해도 에러면 프로그램을 수정하세요.

from turtle import*
shape('turtle')
up(); goto(80, -100); down()
circle(100)
done()
  • 거북이는 선을 그으면서 움직입니다.
  • 선을 긋지 않고 이동하려면 거북이를 위로 띄우고(up), 이동(goto)한 다음에, 내려오게(down)하면 됩니다. 
  • 좌표는 수학의 좌표와 같습니다. 처음 거북이의 위치가 원점(0,0)입니다.
  • 3번 줄의 ;(semicolon)은 같은 줄에 여러 문장을 쓸 때 사용합니다. 줄을 바꾸어 쓰도 됩니다.

2. 다각형 그리기

2-1. circle로 다각형 그리기

다음 코드는 정5각형을 그립니다.

위의 코드에 필요한 부분을 추가하세요.

from turtle import*
shape('turtle')
up(); goto(80, -100); down()
circle(100,None,5)
done()
  • 4번 줄의 5를 다른 숫자로 바꾸면 다른 다각형을 그릴 수 있습니다.

2-2. circle로 연속하여 다각형 그리기

다음 코드를 실행하여 보세요.

위의 코드를 수정하면 됩니다.

from turtle import*
shape('turtle')
up(); goto(80, -100); down()
for n in range(3,10):
  circle(100,None,n)
  clear()
done()
  • 4번 줄 끝에 :(colon)이 있습니다. 5번과 6번 줄은 들여쓰기 하여야 합니다.
  • range(3,10)은 3부터 9(10 앞까지) 의 수열 즉 3,4,5,6,7,8,9입니다.
  • for는 range의 값들을 순서대로 하나씩 n에 바인딩하고 밑에 있는 들여쓰기한 부분을 실행, 이과정을 반복합니다.
  • clear()은 화면을 지웁니다.
  • 정리하면, 처음 n이 3이 되어, 5번 줄에서 3각형을 그리고 6번 줄에서 지웁니다. 다시 n이 4가 되어 4각형 그리고 지우고, 이 과정을 n이 9가 될때까지 반복합니다.

2-3. 색 채우기

그려진 도형에 색을 채울 수 있습니다.

다음 코드를 실해하여 보세요.

위의 코드에 필요한 부분을 추가하면 됩니다.

from turtle import*
shape('turtle')
color('green')
up(); goto(80, -100); down()
for n in range(3,10):
  begin_fill()            # 색 채우기 시작(밑줄<underscore>주의)
  circle(100,None,n)
  end_fill()              # 색 채우기 끝   
  delay(1000)             # 1초 기다림
  clear()                 # 화면 지우기 
  delay(0)                # 다시 빠르게(생략하면 실행마다 1초 기다림)
done()

 

 

3.  다각형 놀이

위의 프로그램을 고쳐서 재미있는 다각형 놀이를 하여 봅시다.

from turtle import*
from random import*        # 난수 만들기 준비 
shape('turtle')
for n in range(30):        # 30개의 다각형
  r=randint(0,255)         # 빛의 3원색 red, green, blue 
  g=randint(0,255)
  b=randint(0,255)
  fillcolor((r,g,b))       # 면색깔을 r,g,b 난수 대로
  
  x=randint(-150,150)      # 가로 위치 -150에서 150사이
  y=randint(-150,150)      # 세로 위치 -150에서 150사이
  d=randint(5,30)          # 반지름 5에서 30사이
  a=randint(3,8)           # 도형은 3각형에서 8각형 사이

  up(); goto(x,y); down()  # 난수 위치로 가서
  begin_fill()
  circle(d,None,a)         # d 난수 반지름으로, a 난수 다각형
  end_fill()
  
ht()                       # 마지막에는 거북이 숨긴다(hide turtle) 
done()
  • randint(a, b)는 a이상 b이하의 정수 난수를 반환합니다.
  • 모든 색은 빛의 3원색인 red(빨강), green(녹색), blue(.파랑)으로 이루어져 있습니다.
  • 각 색깔의 정도는 0이상 255의 숫자로 구분합니다.
  • 텀퓨터에서는 r, g, b의 색깔 정도의 조합으로 모든 색을 표현할 수 있습니다.

즐겁게 응용하시기 바랍니다.

 

수고하셨습니다.

오늘 끝.

728x90
반응형