본문 바로가기
프로그래밍/PYTHON

[19일차] python 그래픽 라이브러리 캔버스 / 거품정렬 표현

by B T Y 2017. 3. 7.
반응형

python 그래픽 라이브러리 캔버스 / 거품정렬 표현



그래픽 라이브러리에서 캔버스를 이용해서 선(line), 직사각형(rectangle), 타원형(oval) ...

다양한 표현이 가능하다.



( 캔버스는 tk.Canvas( self )로 객체 생성이 가능하며 x, y 좌표를 이용해서 선이나 도형의 크기를

조절할수 있다 )



* 지원하는 속성들이 다 조금씩 다르지만 fill은 안쪽의 색을 지정할때 사용되는 속성이고

outline은 바깥선 색을 지정할때 사용이 된다.





※ 캔버스를 이용한 거품정렬 애니메이션 표현




리스트에 0~499까지의 숫자를 생성한다음 random.shuffle로 섞어주어 난수를 만든걸


프레임에 oval을 이용해서 점들로 표현해준다.


그리고나서 프레임에 있는 점들을 모두 지웠다가 거품정렬을 1회전 실행해주고 

다시 그려주는 방식을 재귀함수로 계속 반복하면 애니메이션 효과가 나타나면서

점들이 하나의 선으로 모이는것처럼 보인다.


아래는 거품정렬을 oval형태와 rectangle을 이용해서 그래프 형태로 표현해본 소스이다.


bubble_sort_oval_canvas.py


bubble_sort_rectangle_canvas.py






거품정렬이 완성 되는 모습을 캔버스를 이용해 표현한 것이다.


반응형

댓글