2012-12-05 2 views
3

2D/3D 좌표 집합 (주로 2D)을 처리하는 Python 함수를 작성하고 있습니다.2D/3D 추가/제거 포인트를 보여주는 단계별 설명

문제를 디버깅하는 것은 이러한 점을 보면서 코드를 작성하는 것이 어렵습니다. 그래서 포인트를 표시하고 각 단계 후에 어떤 포인트가 추가/제거되었는지 보여주는 소프트웨어를 찾고 있습니다. 기본적으로, 나는 내 알고리즘을 애니메이션으로 바꾸기를 찾고있다.

나는 애플릿을 온라인에서봤을 때 비슷한 것을했지만, 그래픽/GUI 프로그래밍 기술이 부족하여이 시점에서 비슷한 것을 작성하지 못했으며, 이메일을 보내는 것이 현명하지 않다. 마지막으로 수정 한 타임 스탬프가 몇 년 전에 읽는 것의 저자. 나는 그 과정에서 그래픽/GUI 프로그래밍을 배우는 것에 반대하지 않는다는 것을 알아야한다.하지만 그러한 링크는 여전히 감사하지만 도움을 줄 수 없다면 1-3 일 이상을 쓰지 않을 것이다. 이러한 의미에서 그러한 단계별 프로그램을 작성하기위한 방법 사이트에 연결하는 것이 허용 될 수 있습니다.

+0

아마도 가장 좋은 방법은 각 단계마다 포인트 테이블을 저장 한 다음 http://www.gnuplot.info와 같은 것으로 그려 보는 것입니다. – Daniel

답변

2

matplotlib 라이브러리를 사용하면 작업 애니메이션을 매우 쉽게 얻을 수 있습니다. 다음은 함께 작업 할 수있는 최소한의 예입니다. 기능 generate_data은 여러분의 필요에 적용 할 수 있습니다 :

import numpy as np 
import matplotlib.pyplot as plt 
import matplotlib.animation as animation 

def generate_data(): 
    X = np.arange(25) 
    Y = X**2 * np.random.rand(25) 
    return X,Y 

def update(data): 
    mat[0].set_xdata(data[0]) 
    mat[0].set_ydata(data[1]) 
    return mat 

def data_gen(): 
    while True: 
     yield generate_data() 

fig, ax = plt.subplots() 
X,Y = generate_data() 
mat = ax.plot(X,Y,'o') 
ani = animation.FuncAnimation(fig, update, data_gen, interval=500, 
           save_count=10) 

ani.save('animation.mp4') 
plt.show() 

enter image description here

이 예는 previous answer에서 적응하고 대신 칼라 맵의 선 그림을 보여주기 위해 수정되었습니다.

+0

어, 어떻게 든 matplotlib API의 애니메이션 측면을 간과 한 것처럼 보입니다. 잠시 동안 나는 그것을 검토 할 것 같다. 나는 그 (것)들을 이전에 음모를 꾸미고 있었다, 그러나 20+ 팝업 창을 취급은 고통이다. – Nuclearman

+0

@MC matplotlib에서 애니메이션 작업을하는 데 엄청난 고통을 겪습니다. 여전히 좋지는 않지만, 최신 버전의 matplotlib는 훨씬 더 멋진 API를 가지고 있습니다. – Hooked

+0

사실, 개선이 좋습니다. – Nuclearman