Language/Python

[ Python ] 몬드리안 터틀 프로그램

곽수진 2021. 8. 29. 02:55
반응형
터틀 그래픽을 이용해 몬드리안의 그림처럼 선과 면을 사용해 추상화를 그리는 프로그램 작성해보자.

 

import turtle, random

t=turtle.Turtle()
t.shape("turtle")
t.pensize(3)

for i in range(20):
    r = random.random()
    g = random.random()
    b = random.random()

    x = random.randint(-300, 300)
    y = random.randint(-300, 300)
    length = random.randint(10, 300)

    t.penup()
    t.goto(x, y)
    t.pendown()
    t.color(r, g, b)
    t.begin_fill()
    for j in range(4):
        t.forward(length)
        t.right(90)
    t.end_fill()

 

결과값 출력 모습

 

▶️ 터틀 그래픽에서 RGB 값을 무작위로 생성

r = random.random()
g = random.random()
b = random.random()

 

 


 

 

총 20개의 사각형을 그린다고 할 때, 선 굵기는 3으로 하고 선색과 채우기 색은 동일하게 랜덤으로 결정된 색상으로 그리며, 크기(한 변의 길이는) 10~300 사이의 랜덤값, 사각형의 위치(x,y의 좌표)는 각각 -300~300 사이의 값 중 랜덤으로 결정하여 그리는 프로그램을 작성해보자.

 

import turtle, random
t=turtle.Turtle()
t.shape("turtle")
t.ht()
t.speed(0)

t.width(3)
for i in range(20):
    r=random.random()
    g=random.random()
    b=random.random()
    t.color(r, g, b)

    length = random.randint(10, 300)
    x= random.randint(-300, 300)
    y= random.randint(-300, 300)
    
    t.up()
    t.goto(x, y)
    t.down()

    t.begin_fill()
    for i in range(4):
        t.fd(length)
        t.lt(90)
    t.end_fill()

 

결과값 출력 모습

 

▶️ t.ht() : 화면에서 포인터 모양 가리기

▶️ t.speed(0) : 그림 그리는 속도 조절

0이 가장 빠르고, 1부터 10으로 갈수록 속도가 점점 빨라짐

 

 


 

 

도형은 3~12각형 중 하나를 랜덤으로 결정하고 그릴때마다 변경되며, 도형의 개수는 10~20개 중 하나를 랜덤으로 결정하고 한 변의 길이는 10~100 중 랜덤으로 결정해 그림을 그리는 프로그램을 작성해보자.

 

import turtle, random
t=turtle.Turtle()
t.shape("turtle")
t.ht()
t.speed(0)
t.width(3)

pnum=random.randint(10,20)

for i in range(pnum):
    r=random.random()
    g=random.random()
    b=random.random()
    t.color(r, g, b) 
    
    length = random.randint(10, 100)
    x= random.randint(-300, 300)
    y= random.randint(-300, 300)
    
    t.up()
    t.goto(x, y)
    t.down()

    poly = random.randint(3,12)

    t.begin_fill()
    for i in range(poly):
        t.fd(length)
        t.lt(360/poly)
    t.end_fill()

 

결과값 출력 모습

 

pnum=random.randint(10,20) : 그림을 그리는 도형의 개수는 10~20개 중 랜덤으로 결정

t.color(r, g, b) : 선 색, 채우기 색을 동일하게 설정

length = random.randint(10, 100) : 한 변의 길이는 10~100 중 랜덤으로 결정

poly = random.randint(3,12) : 다각형은 3~12각형 중 랜덤으로 결정

반응형