파이썬 터틀 그래픽스는 로고 프로그래밍 언어의 일부 그래픽관련 기능을 파이썬에서 모듈화 한 것이다. 파이썬 기본 패키지 안에 들어있다.

삼각 스파이럴 그래픽

 

로고 프로그래밍 언어는 특별히 어린이들을 위해 개발된 프로그래밍 언어이다. 그게 언제나면 무려 1966년이었다... 당시 시 10살 정도의 어린이라면 현재 60대 중반이다 (ㅡ.,ㅡ;;;)

그 때 어린이면 지금은 손주 볼 나이

 

로고 프로그래밍 언어 인터뷰까지 유튜브에 있다 헐... 막 없는게 없어 유튜브는

 

터틀 그래픽스를 파이썬 기본 패키지에 포함시킬 정도면 아직까지 교육적 가치가 있다는 것으로 이해할 수 있겠다. 어찌보면 파이썬과 추구하는 방향이 비슷하다. 사용해보면 쉽게 무언가를 할 수 있다고 느끼게 만드는 힘이 있다. 사용자(어른이 포함)는 내가 컨트롤 하고 있다는 느낌을 받는다.

 

이것으로 어떤 프로그램을 만들기는 쉽지 않겠지만 (터틀을 활용한 그래픽 쑈는 할 수 있다) 충분한 교육은 될 것이다. 베이식 계열과는 또 다른 재미가 있다.

 

 

일단 시작하기 전에 파이썬의 공식 DOCUMENTATION 이 잘 되어 있다. 막히면 여기서 참고해도 좋다. 

 

*파이썬 공식문서 turtle

https://docs.python.org/3.3/library/turtle.html?highlight=turtle

 

24.1. turtle — Turtle graphics — Python 3.3.7 documentation

Parameters: width – if an integer, a size in pixels, if a float, a fraction of the screen; default is 50% of screen height – if an integer, the height in pixels, if a float, a fraction of the screen; default is 75% of screen startx – if positive, sta

docs.python.org

https://python.flowdas.com/library/turtle.html 한글판이 있다!

 

turtle --- 터틀 그래픽 — 파이썬 설명서 주석판

turtle --- 터틀 그래픽 소스 코드: Lib/turtle.py 소개 터틀(거북이) 그래픽은 아이들에게 프로그래밍을 소개하는 데 널리 사용되는 방법입니다. 1967년 Wally Feurzeig, Seymour Papert 및 Cynthia Solomon이 개발한

python.flowdas.com

*앞쪽 10초정도 파이썬 데모를 볼 수 있음

파이선 터틀

* 사각형 그리기

우선 turtle 모듈부터 import 한다. turtle은 from turtle import *을 해야 재미를 느낄 수 있다.

from turtle import *

forward(200)
left(90)
forward(200)
left(90)
forward(200)
left(90)
forward(200)
left(90)

mainloop()

파이썬 터틀 사각형

눈앞에서 바로 그려준다.

 

소스 코드를 보니 for문으로 고쳐도 될 것 같다.

 

from turtle import *

for i in range(4):
    forward(200)
    left(90)

mainloop()

이렇게 하면 깔끔하다. 사각형이니까 range(4)이다.

 

*삼각형 그리기

- 삼각형도 그려보자. 360을 3으로 나누면 120이 된다. range에 3을 넣으면 삼각형이다.

from turtle import *

for i in range(3):
    forward(200)
    left(120)

mainloop()

파이썬 삼각형

*오각형 그리기

- 이번에는 수식으로 다 바꿔봤다. 360도를 5로 나눈다. 변의 길이는 150으로 한다.

from turtle import *

total_degree = 360
line_number = 5
line_length = 150

for i in range(line_number):
    forward(line_length)
    left(total_degree/line_number)

mainloop()

오각형

 

*20각형 그리기

20각형을 그리면 어떤일이 생길까? 컴퓨터니까 100각형도 그릴 수는 있다. 하지만 어떨까?

 

from turtle import *

total_degree = 360
line_number = 20
line_length = 30

for i in range(line_number):
    forward(line_length)
    left(total_degree/line_number)

mainloop()

터틀 20각형

놀랍게도 원에 가까워지고 있다. 기원전 아르키메데스가 정 96각형을 측정하여 파이(3.14ㅌㅌㅌ)를 구했다는 것은 역사의 일화다. 원은 원래 다각형이었다는 것이다...

96각형 화면에서 보면 그냥 원이다

* 별모양 그리기

 

import turtle

n = 5

for i in range(n): # 5
    turtle.forward(200)
    turtle.right((360/n)*2) # 72*2 = 144

turtle.mainloop()

별모양 144도로 5회 회전

 

* 피라미드 그리기

피라미드는 내가 붙인 이름이다. 눈에 착시현상이 탑처럼 깊이를 만들어낸다.

 

간격을 range의 세번째 인수로 조절할 수 있다

from turtle import *

speed(0)
colors = ['blue']
pencolor(colors[0])

for i in range(1,500,2):
    forward(i)
    left(90)

mainloop()

피라미드 파이썬 터틀

* RGB 사각 스파이럴 그래픽

역시 터틀하면 RGB 스파이럴이다. 빨려들어갈 것 같은 나선형 그래픽을 보여준다. 90도 턴하는게 아니라 1,2도 차이를 주면 사각형이 나선형으로 돈다. (원을 사각형으로 그린다.)

 

turtle 모드에서는 저 함수들은 그대로 사용하면 된다. (import *) speed는 0일때가 제일 빠르다.

 

from turtle import *

speed(0)
colors = ['red','green','blue']
pensize(2)
degree = 2

for i in range(1,500):
    pencolor(colors[i%3])
    forward(i)
    left(90+degree)

mainloop()

 

 

RGB 스파이럴

 

파이썬 터틀 RGB 스파이럴 빨려들어갈 것 같다


* MONO 삼각 스파이럴 그래픽

from turtle import *

speed(0)
pensize(2)
degree = 2

for i in range(1,1200,3):

    forward(i)
    left(120+degree)

mainloop()

 

삼각 스파이럴


*스퀘어 스파이럴

from turtle import *
speed(0)
color('red')
for i in range(50,700,1): # this "for" loop will repeat these functions 500 times
forward(i)
right(90.1)

스퀘어 스파이럴 사막의 모래 언덕같다

* 그물망 그리기

n값을 조정하여 그린다.

import turtle

n = 60

turtle.speed('fastest')
for i in range(n):
    turtle.circle(150)
    turtle.right(360/n)

turtle.mainloop()

n = 60
n = 120

*로고 프로그래밍 언어

https://en.wikipedia.org/wiki/Logo_(programming_language)

 

Logo (programming language) - Wikipedia

From Wikipedia, the free encyclopedia Jump to navigation Jump to search Computer programming language LogoExample Logo outputParadigmsMulti-paradigm: functional, educational, procedural, reflectiveFamilyLispDesigned byWally Feurzeig, Seymour Papert, Cynth

en.wikipedia.org

 

*터틀 그래픽스

https://en.wikipedia.org/wiki/Turtle_graphics

 

Turtle graphics - Wikipedia

In computer graphics, turtle graphics are vector graphics using a relative cursor (the "turtle") upon a Cartesian plane. Turtle graphics is a key feature of the Logo programming language.[1] Overview[edit] An animation that shows how the turtle is used to

en.wikipedia.org

 

공유하기

facebook twitter kakaoTalk kakaostory naver band