Python - Python 터틀 그래픽스로 그림 그리기
Python
- Python 기본
- Python 숫자 계산하기
- Python 변수 만들기
- Python 출력 방법
- Python 불과 비교, 논리 연산자
- Python 문자열 사용하기
- Python 리스트와 튜플 사용하기
- Python 시퀀스 자료형 활용하기
- Python 딕셔너리 사용하기
- Python if 조건문으로 특정 조건일 때 코드 실행하기
- Python else를 사용하여 두 방향으로 분기하기
- Python elif를 사용하여 두 방향으로 분기하기
- Python for 반복문
- Python while 반복문
- Python break, continue로 반복문 제어하기
- Python 중첩루프
- Python FizzBuzz 문제
- Python 터틀 그래픽스로 그림 그리기
- Python 리스트와 튜플 응용하기
- Python 리스트와 튜플 응용하기 - 2
- Python 2차원 리스트 사용하기
- Python 문자열 응용하기
- Python 딕셔너리 응용하기
- Python 세트 사용하기
- Python 파일 사용하기
- Python 회문 판별과 N-gram 만들기
- Python 함수 사용하기
- Python 함수에서 위치 인수와 키워드 인수 사용하기
- Python 함수에서 재귀호출 사용하기
- Python 람다 표현식 사용하기
- Python 클로저 사용하기
- Python 클래스 사용하기
- Python 클래스 속성과 정적, 클래스 메서드 사용하기
- Python 클래스 상속 사용하기
- Python 두 점 사이의 거리 구하기
- Python 예외 처리 사용하기
- Python 이터레이터 사용하기
- Python 제너레이터 사용하기
- Python 코루틴 사용하기
- Python 데코레이터 사용하기
- Python 정규표현식 사용하기
- Python 모듈과 패키지 사용하기
- Python 모듈과 패키지 만들기
터틀 그래픽스로 그림 그리기
터틀 그래픽스(Turtle graphics) 모듈을 사용해서 간단한 그림을 그려보자.
1. 사각형 그리기
t.shape(‘turtle’)까지 입력하면 파이썬 터틀 그래픽스(Python Turtle Graphics) 창이 표시되고 오른쪽을 바라보는 거북이가 나온다.
import turtle as t
t.shape('turtle')
t.forward(100)
t.forward(100)을 입력하면 거북이를 100픽셀만큼 앞으로 이동시킨다. t.right(90)를 입력하면 거북이가 오른쪽으로 90도 회전한다. 다시 t.forward(100)을 입력하면 회전한 방향에서 100픽셀 만큼 이동하게된다. 이런식으로 반복하여 사각형을 그려보자. fd, bk, lt, rt 같이 짧게 줄여서 입력할 수 있다.
- 앞으로 이동: forward, fd
- 뒤로 이동: backward, bk, back
- 왼쪽으로 회전: left, lt
- 오른쪽으로 회전: right, rt
import turtle as t
t.shape('turtle')
t.fd(100)
t.rt(90)
t.fd(100)
t.rt(90)
t.fd(100)
t.rt(90)
t.fd(100)
2. 다각형 그리기
이번에는 반복문을 사용해 사각형을 그려보자.
import turtle as t
t.shape('turtle')
for i in range(4): # 사각형이므로 4번 반복
t.forward(100)
t.right(90)
오각형 그리기
오각형의 한각의 크기는 360/5를 하여 구할 수 있다.
import turtle as t
t.shape('turtle')
for i in range(5): # 오각형이므로 5번 반복
t.forward(100)
t.right(360 / 5) # 360을 5로 나누어서 외각을 구함
입력값에 해당하는 다각형 그리기
이 소스 코드를 응용해서 사용자가 숫자를 입력하면 해당 숫자에 해당하는 다각형을 그려보자.
import turtle as t
n = int(input()) # 사용자의 입력을 받음
t.shape('turtle')
for i in range(n): # n번 반복
t.forward(100)
t.right(360 / n) # 360을 n으로 나누어서 외각을 구함
다각형에 색칠하기
소스 코드를 실행해보면 빨간색 육각형이 나온다. 먼저 color는 펜의 색을 설정한다. 여기서는 ‘red’를 지정하여 빨간색으로 만들었다. 그리고 도형을 그리기 전에 t.begin_fill()로 색칠할 준비를 한다. 그다음에 for 반복문으로 도형을 그린 뒤에 t.end_fill()을 사용하면 도형에 현재 펜 색이 칠해진다. 색은 rgb 코드로도 입력할 수 있다.
import turtle as t
n = 6 # 육각형
t.shape('turtle')
t.color('red') # 펜의 색을 빨간색으로 설정
t.begin_fill() # 색칠할 영역 시작
for i in range(n): # n번 반복
t.forward(100)
t.right(360 / n) # 360을 n으로 나누어서 외각을 구함
t.end_fill() # 색칠할 영역 끝
3. 복잡한 도형 그리기
이번에는 원을 그려보자. 터틀에서 원을 그릴 때는 circle을 사용한다. t.circle에 120을 지정하여 반지름이 120인 원을 그렸다.
import turtle as t
t.shape('turtle')
t.circle(120)
원을 반복해서 그리기
for 반복문을 사용해 원을 반복해서 그려보자. 오른쪽으로 6도씩 회전하면서 원을 그리게 된다. speed는 거북이의 속도를 설정한다. 속도는 다음과 같이 문자열 또는 숫자로 설정할 수 있다(숫자는 0.5부터 10까지 설정할 수 있다). 여기서는 ‘fastest’를 지정해서 가장 빠른 속도로 그렸다.
- ‘fastest’: 0
- ‘fast’: 10
- ‘normal’: 6
- ‘slow’: 3
- ‘slowest’: 1
import turtle as t
n = 60 # 원을 60번 그림
t.shape('turtle')
t.speed('fastest') # 거북이 속도를 가장 빠르게 설정
for i in range(n):
t.circle(120) # 반지름이 120인 원을 그림
t.right(360 / n) # 오른쪽으로 6도 회전
선으로 복잡한 무늬 그리기
이번에는 선을 이용해서 복잡한 무늬를 그려보자. 소스 코드를 실행해보면 복잡한 무늬가 그려진다. 먼저 for로 i가 0부터 299까지 반복하는데 forward로 i만큼 앞으로 이동하도록 만들었다. 즉, 반복할 때마다 선이 길어진다. 그리고 right로 91도 회전했다. 이렇게 하면 미세하게 틀어진 사각형이 그려지면서 바깥으로 퍼져 나가게 된다. 각자 반복 횟수, 선의 길이, 각도를 조금씩 바꿔가면서 그려보자.
import turtle as t
t.shape('turtle')
t.speed('fastest') # 거북이 속도를 가장 빠르게 설정
for i in range(300): # 300번 반복
t.forward(i) # i만큼 앞으로 이동. 반복할 때마다 선이 길어짐
t.right(91) # 오른쪽으로 91도 회전
예제
표준 입력으로 삼각형의 높이가 입력됩니다. 입력된 높이만큼 산 모양으로 별을 출력하는 프로그램을 만드세요(input에서 안내 문자열은 출력하지 않아야 합니다). 이때 출력 결과는 예제와 정확히 일치해야 합니다. 모양이 같더라도 공백이나 빈 줄이 더 들어가면 틀린 것으로 처리됩니다.
count = int(input())
for i in range(count): # 0~4
for j in reversed(range(count)): #4~0
if j > i:
print(' ', end='')
else :
print('*', end='')
print('*'*i)
Subscribe to My Coding Practice Gym
Get the latest posts delivered right to your inbox