반응형
지난 포스팅에서 Canvas 위젯을 생성하고 create_rectangle 메서드로 사각형을 만들어 보았다.
오늘은 이 사각형의 좌표값을 랜덤하게 주어 여러가지 크기의 사각형을 만들어 볼 것이다.
일단 다음과 같이 캔버스를 만들고 안에 사각형을 만든다. 사각형의 색상을 random 모듈의 choice() 함수를 이용해 임의의 색상을 하나 뽑아 설정해준다. 그리고 크기도 randint() 와 randrange() 를 사용하여 랜덤하게 설정해준다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
from tkinter import *
from random import *
win = Tk() # 윈도우창 생성
win.title("Canvas") # 윈도우 타이틀 설정
can = Canvas(win,width=400,height=400,bg='pink') # 캔버스 생성
can.pack()
# 함수를 호출하면 사각형이 생성되도록 했다.
def draw_rect():
# choice로 임의의 색상을 뽑아 color에 담아줬다.
color = choice(['red','blue','yellow','pink','green','orange'])
# 사각형의 크기를 임의로 지정
x = randint(0,300)
y = randint(0,300)
w = randrange(100)
h = randrange(100)
# 사각형을 생성하는 부분
can.create_rectangle(x,y,w,h,fill=color)
draw_rect() # 메서드를 호출하여 사각형을 생성
win.mainloop() # 윈도우창이 종료될 때까지 윈도우를 실행한다.
|
cs |
먼저 줄4에서 윈도우 창을 생성하고 줄7에서 캔버스를 생성해주었다.
그리고 줄13에서 choice() 로 임의의 색상을 뽑아 color 변수에 담아주었고 줄16~19에서 randint() 와 randrange() 로 임의의 수를 뽑아 각각 x,y,w,h 변수에 담아주었다. 그리고 줄22에서 사각형을 생성할때 위에서 선언한 변수 x,y,w,h 를 크기로 설정하고 색상은 변수 color 로 설정해 주었다.
이 모든 것을 줄11에서 함수 draw_rect() 에 담아주었고 줄24에서 함수를 호출해 사각형을 생성해 주었다.
따라서 위의 실행결과는 다음과 같다.
사각형을 하나만 만들기는 심심하므로 for문을 이용해 사각형을 10개정도 생성시켜보자. range() 함수를 이용해 준다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
from tkinter import *
from random import *
win = Tk() # 윈도우창 생성
win.title("Canvas") # 윈도우 타이틀 설정
can = Canvas(win,width=400,height=400,bg='pink') # 캔버스 생성
can.pack()
# 함수를 호출하면 사각형이 생성되도록 했다.
def draw_rect():
# choice로 임의의 색상을 뽑아 color에 담아줬다.
color = choice(['red','blue','yellow','pink','green','orange'])
# 사각형의 크기를 임의로 지정
x = randint(0,300)
y = randint(0,300)
w = randrange(100)
h = randrange(100)
# 사각형을 생성하는 부분
can.create_rectangle(x,y,w,h,fill=color)
for i in range(10): # 함수호출을 10번 반복하여 사각형 10개생성
draw_rect()
win.mainloop() # 윈도우창이 종료될 때까지 윈도우를 실행한다.
|
cs |
반응형
댓글