본문 바로가기

Python 🎧

[python] turtle 모듈 예제 - n각형/점선/랜덤컬러/스피로그래프

늦게 배우는 파이썬...

학생때 계절학기로 파이썬을 배우긴했지만

퇴근후에 공부하는거랑 좀 다른 느낌적인 느낌 ? 

 

🦦 정사각형 그리기

from turtle import Turtle, Screen

# 내 작고 소중한 꼬북이 짹...
jack = Turtle()
jack.shape("turtle")
jack.color("orange")

# 1. 짹이 정사각형 그리기

# 가고 회전
def turn_go() :
    jack.forward(100)
    jack.right(90)
#4번 반복
for i in range(0,4) :
    turn_go()

screen = Screen()
screen.exitonclick()

 

🦦 실행 결과

 

🦦 점선 그리기

from turtle import Turtle, Screen

# 내 작고 소중한 꼬북이 짹...
jack = Turtle()
jack.shape("turtle")
jack.color("orange")

# 2. 짹이 점선 그리기

def go_dot() :
    jack.fd(10)
    jack.penup() # 그리지 않음
    jack.fd(10)
    jack.pendown() # 그림

for i in range(0,13) :
    go_dot()

screen = Screen()
screen.exitonclick()

 

🦦 실행 결과

 

🦦 n 각형 그리기

from turtle import Turtle, Screen

# 내 작고 소중한 꼬북이 짹...
jack = Turtle()
jack.shape("turtle")
jack.color("orange")

# 3. 짹이 삼각형 - 팔각형 그리기

def draw_diagram(i) :
    # n각형의 각도 구하기 - 잼민때 배웠쥬 ? 개쉽쥬 ?
    angle = (180 *(i-2)) / i
    # n 각형 만큼 실행
    for n in range(0,i):
        jack.forward(50)
        jack.right(180-angle) #꺽는 각도이기 때문에 180도에서 빼야한다


for n in range(3,9) :
    draw_diagram(n)


screen = Screen()
screen.exitonclick()

🦦 실행 결과

 

🦦 랜덤 가기

import turtle
from turtle import Turtle, Screen
import random

# 내 작고 소중한 꼬북이 짹...
jack = Turtle()
jack.shape("turtle")
jack.color("orange")

# 컬러모드로 변경
turtle.colormode(255)
# 4. 짹이 랜덤하게 가기 ....?

# 랜덤 컬러
def random_color() :
    r = random.randint(0, 255)
    g = random.randint(0, 255)
    b = random.randint(0, 255)

    # 튜플이란? 리스트랑 비슷 - 생성 후 값을 변경할 수 없다
    color = (r,g,b)
    return color

# 각도 리스트
angle_list = [0, 90, 180, 270]
# color_list = ["blue","black","brown","BlueViolet","cornsilk", "cyan","DarkGreen", "DarkGrey","DarkKhaki","DarkOrange","DarkRed", "DarkSalmon","DarkMagenta","CornflowerBlue"]

jack.pensize(10)
jack.speed("fastest")

for i in range(0,300) :
    angle = random.choice(angle_list)

    jack.pencolor(random_color())
    jack.forward(20)
    jack.right(angle)


screen = Screen()
screen.exitonclick()

 

🦦 실행 결과

 

🦦 스피로그래프

import turtle
from turtle import Turtle, Screen
import random

# 내 작고 소중한 꼬북이 짹...
jack = Turtle()
jack.shape("turtle")
jack.color("orange")
turtle.colormode(255)
jack.speed("fastest")
# 5. 랜덤컬러 원을 100 개 생성 ? - 스피로그래프

def random_color() :
    r = random.randint(0, 255)
    g = random.randint(0, 255)
    b = random.randint(0, 255)

    color = (r,g,b)
    return color

for i in range(0, 100) :
    jack.pencolor(random_color())
    jack.circle(150)
    jack.right(3.6)



screen = Screen()
screen.exitonclick()

 

🦦 실행 결과