예전에 python의 matplotlib를 이용해서 애니메이션을 구현하는 이야기를 간단히 해보았습니다. 이번에는 조금 더 재미있는 애니메이션 이야기를 해보고 싶네요.^^. 화면에 점 하나를 찍고, 마우스로 다른 곳을 클릭하면 그 점이 천천히 따라오게 하는 것이죠^^ 코드는
import matplotlib.pyplot as plt import numpy as np x_goal = 1 y_goal = 1 x = 1 y = 1 dt = 0.01 Kp = 7 def click(event): global x_goal, y_goal x_goal = event.xdata y_goal = event.ydata fig = plt.figure() fig.canvas.mpl_connect("button_press_event", click) plt.ion() while True: x = x + Kp * (x_goal - x) * dt y = y + Kp * (y_goal - y) * dt plt.cla() plt.plot(x_goal, y_goal, 'c+', markersize=15) plt.plot(x, y, 'g*') plt.xlim(-2, 2) plt.ylim(-2, 2) plt.show() plt.pause(dt)
아주 심플합니다. (맨날 이렇게 이야기하죠^^) 여기서 마우스로 콕 찍어서 그 좌표를 얻는 부분이 fig.canvas.mpl_connect가 하는 일입니다. 그리고 마우스 클릭에 대한 콜백함수를 click으로 구현합니다. 거기서는 단지 클릭된 마우스의 좌표만 받도록 했습니다.
그리고 그 좌표로 천천히 따라가게 만들어야하는데, 그 시각적 효과를 while Ture: 바로 다음에 있는 x, y 를 계산하는 코드에서 수행합니다. 간단하게 일정 거리를 일정 에러의 비례만큼 따라가도록 한거죠.
시작하면 이렇게 되어있구요.
이렇게 마우스로 찍으면 별표가 따라가는 효과가 납니다. 이 코드는 jupyter notebook에서는 동작하지 않습니다.ㅠㅠ.
반응형
'Software > Python' 카테고리의 다른 글
파이썬에서의 복사 얕은 복사와 깊은 복사 (10) | 2019.07.22 |
---|---|
Python에서 미분(차분)을 한다는 것. 데이터, 혹은 함수 (8) | 2019.07.15 |
파이썬(Python)에서 시리얼 통신으로 받은 데이터 실시간으로 그래프 그리기 (21) | 2019.07.03 |
Python에서 인터랙티브한 반응과 애니메이션 구현하기 (42) | 2018.09.17 |
아나콘다 Anaconda에서 가상환경에 텐서플로우 설치 (20) | 2018.06.01 |
Pandas 데이터프레임에서 컬럼값을 행방향 기준으로 정렬한 순위 만들기 argmax, idxmax, argsort (20) | 2018.05.30 |
아나콘다 환경이 여러개일 때 VSCode 적용하기 (22) | 2018.05.28 |
Numpy의 polyfit과 poly1d의 사용법 - 최소제곱법과 polynomial class (26) | 2018.05.14 |
잘 보고 갑니다.
즐거운 시간 보내세요.
네.. 즐거운 한 주 되세요^^
파이선 이거 정말 조만간 대세가 될거같아요
이미 구글에선 파이선 언어 모르면 채용하지 않는다죠?
뭔가 개념을 쉽게 설명하는 코드인 것 같아요^^
신기하네요.
ㅎㅎ
잘 보고갑니다.
앗 감사합니다.^^
처음 보는 분들에게는 조금 어렵겠네요 잘 보고 갑니다
네 감사합니다.^^
웬지 보는 것만으로도 머리가 찌끈 합니다.. ㅋㅋ
잘 보고 갑니다.. ^^
ㅎㅎ 그래도 재미있습니다.
별표가 따라가는 효과를 내는 방법이로군요 ㅎ
넵~~^^
간단한 코드 따라하기를 해주셨군요.
날시도 선선하니, 저도 이제 따라해봐야 겠습니다.
이제 슬슬 시원해집니다. ^^
마우스 포인트를 따라 점이 따라 움직이네요.
재미있네요. ^^
좀 더 멋진건 나중에 해아할 듯 합니다.^^
파이썬이 초보자가 배우기 좋은 언어라 하더니 나름 한번 도전하면 재밌게 배울 수 있을거 같습니다.
그래도 좀 어렵게 느껴지긴 하지만 즐거운 한 주 되세요.^^
네 감사합니다^^
애니메이션 생각보다 구현하기 어렵네요.
행복한 시간되세요.
네 즐거운 시간되세요^^
잘보고 갑니다. 파이선 언어도 이제는 이쪽계열에서는 필수인가보네요.
많이들 공부하시더라구요^^
핑크윙크님 추석 한가위 가족들과 함께 행복하게 보내세요~
네 즐거운 추석 되세요^^
포스팅 잘 보고 가네요
남은 하루도 화이팅 하세요~
네 감사합니다^^
별표가 마우스 포인트를 졸졸졸 따라오면 넘 예쁘겠어요.
ㅎㅎ 네..
감사합니다 많이배워가네요~
넵 감사합니다.^^
와 너무 신기해요 ㅎㅎㅎ 저도 요즘 파이썬과 데이터분석 관련 배우고 있는데 많은 도움이 될거 같아요!!
아~~ 네 감사합니다^^
안녕하세요 평상시에 잘 보고 있는 파이썬 유저입니다.
올려주신 코드를 실행하고 x버튼 눌러서 창을 닫을때 창이 닫히지 않는데 그건 왜 그런가요?
참고로 저는 기본으로주는 IDLE씁니다.
어... 제가 종료기능을 안만들어서 그럴 수 있습니다. 종료 버튼을 눌렀을때 종료하라고 해야하는데.ㅠㅠ.
그럼 종료기능을 만들려면 어떻게 해야하나요?
https://stackoverflow.com/questions/2732847/exit-tks-mainloop-in-python
이 글은 어떤가요?
감사합니다 덕분에 도움이 되엇어요^^
네 감사합니다.~~
혹시 해당 점들을 하나의 이미지에 여러개를 찍고 싶으면 어떻게 해야하나요..?
점들의 좌표를 list로, 혹은 여러번 plot하면 될듯 합니다~
별건 아니지만 jupyter notebook에서 작동하려면
%matplotlib tk
추가해주시면 됩니다.
matplotlib를 tk형식으로 구동한다는 건데, 쉽게 말하면 외부창 실행이거든요.
항상 파이썬에게 줘터지다가 아는거 하나 나와서 허세 부려봤습니다 ㅎㅎ
코드는 재밌네요
ㅎㅎㅎ 감사합니다~ 이 글을 읽는 다른분들께 분명 도움이 될겁니다.^^