2016-08-20 4 views

답변

1

this answer (@unutbu 출품)에서 적응할 예정입니다. 다른 관해서는

Square animation in matplotlib

: 결과는이 (물론 단지 스크린 샷, 그것 실제로 애니메이션)이며,

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

# Building a possible trajectory 
x = np.hstack((np.linspace(-5, 5, 50), np.ones(50)*5, np.linspace(5, -5, 50), np.ones(50)*-5)) 
y = np.hstack((np.ones(50)*-5, np.linspace(-5, 5, 50), np.ones(50)*5, np.linspace(5, -5, 50))) 

yaw = [0.0, 0.5, 1.3] 
fig = plt.figure() 
plt.axis('equal') 
plt.grid() 
ax = fig.add_subplot(111) 

# Adding a simple plot for trajectory (initial coordinate of rectangle) 
ax.plot([-5, 5, 5, -5, -5], [-5, -5, 5, 5, -5], color="grey", linestyle="--") 

ax.set_xlim(-10, 10) 
ax.set_ylim(-10, 10) 

patch = patches.Rectangle((0, 0), 0, 0, fc='y') 

def init(): 
    ax.add_patch(patch) 
    return patch, 

def animate(i): 
    patch.set_width(1.2) 
    patch.set_height(1.0) 
    patch.set_xy([x[i], y[i]]) 
    return patch, 

anim = animation.FuncAnimation(fig, animate, 
           init_func=init, 
           frames=len(x), 
           interval=50, 
           blit=True) 
plt.show() 

: 다음 코드는 사각형 궤도를 구축하고 그것으로 사각형을 이동 matplotlib는 픽셀 기반이 아니므로 한 픽셀을 그리는 (쉬운) 방법은 없다고 생각합니다. 목표에 따라 matplotlib에 잘 지원되는 image API를 사용하여 사용자 정의 된 배경을 제공하는 것이 좋습니다. 그래서 당신은 matplotlib에 의해 화면에 파싱 될 배열을 그릴 것입니다.

관련 문제