'Python/Drawing'에 해당되는 글 1건

  1. 2019.01.31 Canvas Drawing
Python/Drawing2019. 1. 31. 16:15

tkinter 를 이용하여 선, 사각형, 다각형, 원, 텍스트, 이미지 그리기



tkinter 의 Canvas에 선과 사각형을 그리고 지우기


from tkinter import *

master = Tk()

canvas = Canvas(master, width=200, height=100)
canvas.pack()

canvas.create_line(0, 0, 200, 100)
canvas.create_line(0, 100, 200, 0, fill="red", dash=(4, 4))

canvas.create_rectangle(50, 25, 150, 75, fill="#0000ff") #좌상단(50,20) 우하단(150,75)

i = canvas.create_line(100,0,100,100, fill="red")

canvas.coords(i, 0,100,100,100) # 기존 그림의 좌표 변경
canvas.itemconfig(i, fill="blue") # 기존 그림 색상 변경

canvas.delete(i) # 그려진 특정 그림 제거

#canvas.delete(ALL) # 캔바스의 모든 그림 제거
mainloop()



선, 사각형, 다각형, 호, 타원, 텍스트, 이미지 그리기

마우스 궤적을 따라 그리기

from tkinter import *

def on_move(evt) :
x1, y1 = (evt.x-1),(evt.y-1)
x2, y2 = (evt.x+1),(evt.y+1)
canvas.create_oval(x1,y1, x2,y2, fill="blue")

master = Tk()
master.title("Canvas에 도형 그리기")
master.geometry("600x400+300+100")
master.resizable(False, False)

canvas = Canvas(master, width=600, height=400, bg="orange")
canvas.pack()

# create_rectangle(x1,y1, x2,y2)
canvas.create_rectangle(50, 10, 150, 110, fill="#0000ff")
canvas.create_rectangle(70, 30, 170, 130, fill="#ff0000")

coord = (200, 10, 270, 200) # Tuple(바깥 원의 좌상단 모서리와 우하단 모서리)

# 반시계 방향으로 start각에서 출발하여 extend각으로 호를 그린다
arc = canvas.create_arc(coord, start=0, extent=180, fill="white")

# 바깥원의 좌상단 모서리, 우하단 모서리 좌표
oval = canvas.create_oval(300, 10, 400, 110, fill="#ffff00")

#최소한 3개의 꼭지점 좌표를 사용하여 다각형을 그린다(마지막 구간은 자동으로 연결됨)
poly = canvas.create_polygon(420,10, 460,10, 440,100, 480,100, fill="green")

# 시작점과 끝점을 연결하는 선을 그린다
line = canvas.create_line(10, 150, 500, 150, fill="black", width=3)

# 이미지 파일을 참고하여 이미지 그리기
filename = PhotoImage(file = "D:\\test\\bullet_left.png")
image = canvas.create_image(0, 200, anchor=NW, image=filename)

# 캔바스에 텍스트 그리기
text = canvas.create_text(100, 200, anchor=NW, font=("나눔고딕", 20), text="도형 그리기")

# 마우스 궤적을 따라 그리기
canvas.bind("<B1-Motion>", on_move)
mainloop()


Posted by cwisky