파이썬 tkinter 사각형 - paisseon tkinter sagaghyeong

파이썬 tkinter 사각형 - paisseon tkinter sagaghyeong

코딩온 Python GUI 05탄

TkInter 도형그리기

파이썬 tkinter 사각형 - paisseon tkinter sagaghyeong

안녕하세요!

오늘은 TkInter도형그리기에 대해 배워볼게요:)

도형을 그린다는 것은 간단히 말해 그림판에

도형을 그리는 것과 같이 그림을 그리는 것을 말해요.

하지만 어떤 방식으로 TkInter를 통해 도형을 그리는지는

충분히 이해할 수 있을거라 생각하기에 오늘은 이에 대해 배워볼게요!

대표적으로 파이썬이 TkInter를 통해

그릴 수 있는 도형은 사각형, 타원, 선이 있어요.

이 세 가지 도형은 모두 한 가지 공통점이 있어요!

도형이라는 점 외에 무슨 공통점이 있을지 한 번 찾아보세요! 찾으셨나요?

세 가지 도형은 모두 두 점을 통해 도형을 그릴 수 있다는 것이에요!

이해를 돕기 위해 위 사진을 하나 만들어보았어요!

파이썬 tkinter 사각형 - paisseon tkinter sagaghyeong

각 도형에서 동그라미 쳐져있는

두 부분의 점을 알면 각 도형의 빨간 선의 길이를 알 수 있죠?

동그라미 친 두 점의 좌표만 알면 해당 도형의

가로 길이, 세로 길이, 좌측 상단 모서리의 좌표까지 모두 알 수 있어요!

이와 같이 최소한의 정보를 가지고

각 도형을 그릴 수 있는 모든 정보를 얻을 수 있다는 뜻이에요!!

그리고 컴퓨터 프로그램은 좌표를 계산하는 방법이 독특해요!

위 사진과 같이 x 좌표는 오른쪽으로 갈 수록 증가하는 것으로

우리가 아는 것과 같지만 y좌표는 아래로 내려 갈 수록 증가하고 있어요!

파이썬 tkinter 사각형 - paisseon tkinter sagaghyeong

우리가 흔하게 아는 좌표는 위로 갈 수록 y 좌표가 증가하지만

프로그래밍의 프레임에서는 다르게 아래로 갈 수록 y좌표가 증가하는거에요!

따라서, 좌측 상단의 좌표가 ( 10, 10 ) 이고 우측 하단의 좌표가 (70, 30) 인 사각형을 그려라! 라고

저희가 말하면 여러분도 이제 충분히 그릴 수 있겠죠?

원도 마찬가지에요! 원을 좌측 상단 좌표와 우측 하단 좌표를 이용해서

가로 지름과 세로 지름을 구하고 두 좌표의 중심을 중점으로 하는 원을 그리도록 되어 있어요!

원을 그릴 때 두 좌표는 그림으로 표시하면 위와 같이 활용되어 사용됩니다!

파이썬 tkinter 사각형 - paisseon tkinter sagaghyeong

두 좌표를 통해 원의 크기에 딱 맞는 사각형을 그리면 가로 길이가 곧 원의 가로 지름이 되고,

세로 길이가 곧 원의 세로 지름이 되는 거에요!

그리고 두 점의 중심을 중점으로해서

아까 구한 지름의 길이들에 맞는 원을 그리도록 하는거에요!

따라서, 위 그림에서 보이는 타원의 가로 지름은

100, 세로 지금은 60, 그리고 중심은 (50, 30)이 되는 거에요!

선은 매우 간단해요! 선은 시작 지점의 좌표와

도착 지점의 좌표만 알면 그 두 점을 이은 선만 그리면 되거든요!!

자, 그럼 이제 이 원리를 적용해서 파이썬 TkInter를 통해 도형들을 그리는 코드를 소개해드릴게요!

도형을 그리기 위해서는 캔버스라는 그림을 그릴 수 있는 프레임이 필요해요!

파이썬 파일에 위 코드와 같이 코드를 써주세요!

from tkinter import * mainFrame = Tk() sketchbook = Canvas( mainFrame, width = 400, height = 200 )

mainFrame에 sketchbook이라는 그림을 그릴 수 있는 프레임을 붙여주는거에요!

이 때 그림을 그릴 수 있는 프레임의 크기를 가로 400 세로 200으로 지정했어요!

자, 이제 그림을 그릴 수 있는 프레임을 붙였으니 이제 도형을 그려 볼까요?

도형을 그리는 코드는 위와 같아요!

// 사각형 그리기 그림프레임.create_rectangle( 좌측상단x좌표, 좌측상단y좌표, 우측하단x좌표, 우측하단y좌표, outline = "선색상", width = "선 굵기", fill = "채우기색상" ) // 원 그리기 그림프레임.create_oval( 좌측상단x좌표, 좌측상단y좌표, 우측하단x좌표, 우측하단y좌표, outline = "선색상", width = "선 굵기", fill = "채우기색상" ) // 선 그리기 그림프레임.create_line( 시작지점x좌표, 시작지점y좌표, 도착지점x좌표, 도착지점y좌표, fill = "선색상" )

이 코드만 보고도 직접 할 수 있을 거에요! 이 코드에서 한 가지 유의해야 할 점은

선을 그릴 때 선 색상을 지정하는게 fill 이라는 속성이라는 거에요!

다른 도형의 경우 fill은 안의 색상을 채우는 것이지만

선 만이 조금 다르다는 점을 유의해주시면 돼요!!

위와 같이 예제 코드를 하나 드릴게요! 위 코드와 같이 쓰면

각 조건에 맞게 적용된 도형이 그려지는 것을 볼 수 있을 거에요!

from tkinter import * mainFrame = Tk() sketchbook = Canvas( mainFrame, width = 400, height = 200 ) sketchbook.pack() sketchbook.create_line( 10, 10, 100, 100, fill = "red" ) sketchbook.create_rectangle( 110, 10, 200, 100, outline = "black", width = "3" ) sketchbook.create_oval( 210, 10, 300, 100, fill = "yellow" ) mainFrame.mainloop()

도형으로만 끝나면 조금 아쉽겠죠?

이번엔 도형에 여러분만의 사진을 넣는 방법도 가르쳐드릴게요!

우선, 인터넷에서 여러분이 제일 좋아하는 동물의 사진을

하나 다운받아 만드는 파이썬 파일과 같은 폴더에 저장해주세요!

혹시 인터넷에서 사진을 찾아 다운 받는것이 어려워하는 분들이

있을 수도 있으므로 제가 좋아하는 동물의 사진도 올려드릴게요!

위 파일을 클릭해 사용하셔도 좋아요!

파이썬 tkinter 사각형 - paisseon tkinter sagaghyeong

다운 받은 사진을 파이썬 파일과 같은 위치에 저장하셨나요?

그럼 이제 코드를 짜볼게요!

우선 아까 배운 그림을 그릴 수 있는 프레임을 mainFrame에 넣어주세요!

그리고 위 조건에 맞게 코드를 이어서 구현해주세요!

사진변수이름 = PhotoImage( file = "다운받은파일이름" ) 그림프레임.create_image( 좌측상단x좌표, 좌측상단y좌표, image = 사진변수이름, anchor = NW )

이와 같이 예제를 짜서 실행시키면

자신의 사진이 파이썬 프레임이 나오는 것을 볼 수 있을거에요!

from tkinter import * mainFrame = Tk() sketchbook = Canvas( mainFrame, width = 400, height = 600 ) sketchbook.pack() photo = PhotoImage( file = "사진파일이름" ) sketchbook.create_image( 10, 10, image = photo, anchor = NW ) mainFrame.mainloop()

오늘은 TkInter를 통해서 도형을 그리고 사진을 넣는 방법에 대해서 배워보았어요.

오늘 배운 좌표 계산과 같은 것은 파이썬 뿐만 아니라 다른 도형을 다루는 모든 언어에서 적용되는 규칙이에요!

직접 도형을 다양하게 그려보며 연습해보도록 해요!

오늘 수고했어요 :)

수고많았어요 :)

오늘 정보도 유익하셨나요?

파이썬 tkinter 사각형 - paisseon tkinter sagaghyeong

늦었다고 생각할 때가 가장 빠른거 아시죠?!

더 늦기 전에 코딩온과 코딩공부 시작해보세요

https://codingon.co.kr/#intro

파이썬 tkinter 사각형 - paisseon tkinter sagaghyeong

코딩온 >

서울시공식SW교육파트너,코딩온,코딩,코딩학원,코딩교육,스크래치,코딩로봇,코딩프로그램,파워포인트,코딩학원창업,초등코딩교육,코딩게임,엔트리코딩,스크래치코딩,라즈베리파이,3D프린팅,유아코딩,코딩강사,SW,코딩사이트,4차산업혁명직업,소프트웨어,정보처리기능사,코딩자격증,코딩이란,엑셀,PPT,스크레치코딩,ITQ,CODING,로봇,성인코딩교육,4차산업혁명교육,앱개발,앤트리코딩,IOT교육,코딩과외,스크래치설치,정보처리기사,SW개발,어도비프리미어프로,유튜브영상편집,C언어,코딩스크래치,웹디자인,아두이노코딩,3D,엑셀자격증,웹사이트제작,포트폴리오제작,...

codingon.co.kr