2016-08-20 5 views
-2

ボックスを指定したトラック上で動かすアニメーションを作成したいと思います。Pythonで2Dオブジェクトをプロットする方法は?

このタスクをPythonで実行する方法はありますか? matplotlibにブールプロット関数があり、明示的にピクセルを描くことができますか?

+1

try 'pygame'パッケージ。 –

答えて

1

this answer(from @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はピクセルベースではないので、1つのピクセルだけを描画する(簡単な)方法はないと思います。目的に応じて、matplotlibでよくサポートされているimage apiを使用して、カスタマイズされた背景を提供することを検討してください。したがって、あなたはmatplotlibによって画面に解析される配列を描画します。