본문 바로가기
카테고리 없음

Python turtle (터틀 그래픽)

by 부캐 활용 IT 2023. 3. 16.
반응형

Python turtle (터틀 그래픽)

  • Python Turtle은 가상 거북이를 사용하여 그래픽을 그리는 Python 모듈
  • 거북이를 간단한 명령을 사용하여 화면에서 움직일 수 있으며 선, 도형, 텍스트도 그릴 수 있다.
  • Python Turtle은 다양한 모양을 그리고 모양에 색상을 채우거나 프랙탈을 그리는 등 많은 다른 함수를 제공한다.
  • 다양한 함수를 사용하여 거북이의 속도, 색상 및 기타 속성을 제어할 수 있다.
  • 시각적 결과를 제공하기 때문에 초보자에게 프로그래밍 개념을 가르치는 데 훌륭한 도구이다.

 

https://docs.python.org/ko/3/library/turtle.html

 

turtle — Turtle graphics

Source code: Lib/turtle.py Introduction: Turtle graphics is a popular way for introducing programming to kids. It was part of the original Logo programming language developed by Wally Feurzeig, Sey...

docs.python.org

 

예) 사각형 그리기

import turtle

t = turtle.Turtle()

for i in range(4):
    t.forward(100)
    t.right(90)

turtle.done()

 

예) 삼각형 그리기

import turtle

t = turtle.Turtle()

for i in range(3):
    t.forward(100)
    t.left(120)        #360도를 3분으로 나눈 값

turtle.done()

 

예) 원그리기

import turtle

t = turtle.Turtle()

t.circle(50)

turtle.done()

 

예) 원의 위치를 조금씩 움직이면서 반복하여 시각적으로 표시

import turtle as t

n=100
t.shape("turtle")
t.bgcolor("black")
t.color("green")
t.speed(0)

for x in range(n): #n번 반복
    t.circle(200)
    t.left(360/n)

t.exitonclick()    #마우스를 클릭하면 창이 닫히도록 처리

 

위 소스를 실행하면 다음과 같은 결과물을 얻을 수 있다.

 

예) 꽃 모양 그리기

import turtle as t

t.speed(0)
for i in range(100):
    t.right(3.6)
    for j in range(2):
        t.forward(80)
        t.right(60)
        t.forward(80)
        t.right(120)

t.done()

 

 

예)  프랙탈 나무 그리기

 

import turtle

t = turtle.Turtle()
t.left(90)
t.speed(100)

def tree(length):
    if length < 5:
        return
    else:
        t.forward(length)
        t.left(30)
        tree(length*0.7)
        t.right(60)
        tree(length*0.7)
        t.left(30)
        t.backward(length)

tree(100)

turtle.done()

 

예) 무지개 나선 그리기

import turtle

t = turtle.Turtle()
t.speed(0)
colors = ["red", "orange", "yellow", "green", "blue", "purple"]
size = 10

for i in range(500):
    t.pencolor(colors[i % len(colors)])
    t.forward(i)
    t.right(59)
    size += 0.1
    t.pensize(size)

turtle.done()

 

반응형

댓글