본문 바로가기
프로그램

[파이썬] 문제 : 100개의 사각형 임의의 위치에 그리기

by 오디세이99 2023. 12. 11.
728x90
반응형
1.모듈 임포트(터틀,랜덤모듈 임포트)
2.정사각형 그리기 100번 반복(for문 사용)
-x,y좌표 생성
-정사각형 한변의 길이는 10이상 100이하
-임의의 면 색 결정
-그릴 위치로 이동하기
-색 채우기 시작
-정사각형 그리기
-색 채우기 끝
4.커다란 테두리 그리기(3번에서 그린 정사각형들 싸고 있는 큰 테두리)
-그릴 위치로 이동하기
-정사각형 그리기
 
import turtle
import random

height = 600
width = 600
turtle.setup(height, width)  # 화면 크기
turtle.colormode(255)        # RGB 컬러를 사용하기 위한 모드 지정
t=turtle.Turtle()            # 터틀
t.hideturtle()               # 터틀 숨기기
t.speed(0)                   # 속도 빠르게

def draw(x, y, length, r, g, b, pen_size, fill_yn):  # 그리는 함수. x,y 좌표. length:길이. r,g,b : 컬러, pen_size:펜 꿁기, fill_yn:채우기여부
    t.penup()                # 펜 들기
    t.goto(x, y)             # 이동
    t.pendown()              # 펜 내리기
    # t.pencolor(co)         # 색 지정
    t.color(r, g, b)         # 채우기 색 지정
    if fill_yn == 'Y':      # 채우기 할때
        t.begin_fill()       # 채우기 시작
    t.width(pen_size)        # 선 굵기
    for i in range(4):       # 4각형 그리기
        t.forward(length)     # length 만큼 이동
        t.right(90)           # 90도 꺽기
    if fill_yn == 'Y':
        t.end_fill()          # 채우기 끝

for i in range(100):         # 100원을 그리기 위한 반복
    x_half = int(width/2)     # width 반(1/2)
    y_half = int(height/2)    # height 반(1/2)
    x = random.randint(-(x_half), x_half)    # x 죄표. random으로 임의의 위치
    y = random.randint(-(y_half), y_half)    # y 죄표. random으로 임의의 위치
    length = random.randint(10, 100)         # 길이 지정. 사각형의 한변 길이(10~100)
    R, G, B = random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)   # RGB 각 색값(0~255) 지정
    draw(x, y, length, R, G, B, 0, 'Y')       # 사각형 그리기 함수 실행

draw(-(x_half), y_half, width-7, 0, 0, 0, 20, 'N')   # 테두리 그리기 함수

turtle.done()

728x90
반응형

댓글