본문 바로가기
프로그램

[파이썬] 문제 : 터틀로 도형 회전 그림을 3개 그리기

by 오디세이99 2023. 4. 3.
728x90
반응형

import turtle as t

t.setup(width = 1000, height = 600)      # 화면 큭기 설정
t.speed(5)

def draw_rectangle(x, y, size):  # 사걱형을 그리기 위한 함수
    t.up()                        # 이동을 위한 펜 들기
    t.goto(x-size, y+size)        # 처음 그리기 위한 위치로 이동
    t.down()                      # 그리기 위해 펜 내리기
    for j in range(4):           # 4각형 반본문
        t.forward(size*2)         # 한변 그리기
        t.right(360//4)           # 회전

start_x = -200
line_size = 50
angle_lst = [5,6,8]                 # 하나의 도형이 몇 번 회전하는지 회전수
polygon_lst = [5,5,8]               # 도형의 5각형, 5각형, 8각형
for i in range(3):                  # 3번 그림
    draw_rectangle(start_x, 0, 96)  # 사걱형 외곽 그리기. (x,y, 라인 반절 크기)
    t.up()                          # 이동시 선이 그려지지 않기 위한 펜 들기
    t.goto(start_x, 0)              # 펜 이동
    t.down()                        # 그리기 위해 펜 내리기

    n = angle_lst[i]                # 도형을 몇 번 회전할 것인지
    polygon = polygon_lst[i]        # 도형이 몇각형 인지
    angle = 360 // n                # 하나의 다각형이 회전하기 위한 각도
    if n == 8: line_size = 30      # 도형을 그릴때 한 변의 길이. 마지막 8각형일때는 30
    for i in range(n):             # 도형의 회전을 위한 반복문
        for j in range(polygon):   # 하나의 도형을 그리기 위한 반복문
            t.forward(line_size)    # 선 그리면 이동
            t.left(360//polygon)    # 회전
        t.left(angle)               # 도형을 회전
    start_x += 200                  # 다른 그림을 그리기 위한 x 좌표 계산

t.done()

 

 

색 지정

import turtle as t

t.setup(width = 1000, height = 600)      # 화면 큭기 설정
t.speed(5)

def draw_rectangle(x, y, size):  # 사걱형을 그리기 위한 함수
    t.up()                        # 이동을 위한 펜 들기
    t.goto(x-size, y+size)        # 처음 그리기 위한 위치로 이동
    t.down()                      # 그리기 위해 펜 내리기
    for j in range(4):           # 4각형 반본문
        t.forward(size*2)         # 한변 그리기
        t.right(360//4)           # 회전

start_x = -200
line_size = 50
angle_lst = [5,6,8]                 # 하나의 도형이 몇 번 회전하는지 회전수
polygon_lst = [5,5,8]               # 도형의 5각형, 5각형, 8각형
color = ['red', 'blue', 'black']
for i in range(3):                  # 3번 그림
    draw_rectangle(start_x, 0, 96)  # 사걱형 외곽 그리기. (x,y, 라인 반절 크기)
    t.up()                          # 이동시 선이 그려지지 않기 위한 펜 들기
    t.goto(start_x, 0)              # 펜 이동
    t.down()                        # 그리기 위해 펜 내리기
    t.color(color[i])
    t.stamp()
    t.color('black')

    n = angle_lst[i]                # 도형을 몇 번 회전할 것인지
    polygon = polygon_lst[i]        # 도형이 몇각형 인지
    angle = 360 // n                # 하나의 다각형이 회전하기 위한 각도
    if n == 8: line_size = 30      # 도형을 그릴때 한 변의 길이. 마지막 8각형일때는 30
    for i in range(n):             # 도형의 회전을 위한 반복문
        for j in range(polygon):   # 하나의 도형을 그리기 위한 반복문
            t.forward(line_size)    # 선 그리면 이동
            t.left(360//polygon)    # 회전
        t.left(angle)               # 도형을 회전
    start_x += 200                  # 다른 그림을 그리기 위한 x 좌표 계산

t.done()

728x90
반응형

댓글