본문으로 바로가기

예전에 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에서는 동작하지 않습니다.ㅠㅠ.



댓글을 달아 주세요

  1. BlogIcon 휴식같은 친구 2018.09.17 18:15 신고

    잘 보고 갑니다.
    즐거운 시간 보내세요.

  2. BlogIcon 보여주는남자 2018.09.17 19:28 신고

    파이선 이거 정말 조만간 대세가 될거같아요
    이미 구글에선 파이선 언어 모르면 채용하지 않는다죠?

  3. BlogIcon *저녁노을* 2018.09.18 05:10 신고

    신기하네요.
    ㅎㅎ
    잘 보고갑니다.

  4. BlogIcon 핑구야 날자 2018.09.18 06:46 신고

    처음 보는 분들에게는 조금 어렵겠네요 잘 보고 갑니다

  5. BlogIcon kangdante 2018.09.18 07:36 신고

    웬지 보는 것만으로도 머리가 찌끈 합니다.. ㅋㅋ
    잘 보고 갑니다.. ^^

  6. BlogIcon 공수래공수거 2018.09.18 09:02 신고

    별표가 따라가는 효과를 내는 방법이로군요 ㅎ

  7. BlogIcon 스티마 2018.09.18 13:37 신고

    간단한 코드 따라하기를 해주셨군요.
    날시도 선선하니, 저도 이제 따라해봐야 겠습니다.

  8. BlogIcon peterjun 2018.09.18 19:28 신고

    마우스 포인트를 따라 점이 따라 움직이네요.
    재미있네요. ^^

  9. BlogIcon IT넘버원 2018.09.19 02:37 신고

    파이썬이 초보자가 배우기 좋은 언어라 하더니 나름 한번 도전하면 재밌게 배울 수 있을거 같습니다.
    그래도 좀 어렵게 느껴지긴 하지만 즐거운 한 주 되세요.^^

  10. BlogIcon 코리아배낭여행 2018.09.19 05:37 신고

    애니메이션 생각보다 구현하기 어렵네요.
    행복한 시간되세요.

  11. BlogIcon 멜로요우 2018.09.19 08:46 신고

    잘보고 갑니다. 파이선 언어도 이제는 이쪽계열에서는 필수인가보네요.

  12. BlogIcon 북두협객 2018.09.19 09:41 신고

    핑크윙크님 추석 한가위 가족들과 함께 행복하게 보내세요~

  13. BlogIcon 청결원 2018.09.19 15:15 신고

    포스팅 잘 보고 가네요
    남은 하루도 화이팅 하세요~

  14. BlogIcon 잉여토기 2018.09.19 18:30 신고

    별표가 마우스 포인트를 졸졸졸 따라오면 넘 예쁘겠어요.

  15. BlogIcon 열코 2018.09.21 14:22 신고

    감사합니다 많이배워가네요~

  16. BlogIcon 글쓰는 엔지니어 2018.10.10 14:34 신고

    와 너무 신기해요 ㅎㅎㅎ 저도 요즘 파이썬과 데이터분석 관련 배우고 있는데 많은 도움이 될거 같아요!!