def update_scene(self, x):
x0 = x[0]
phi1 = np.rad2deg(x[2])
phi2 = np.rad2deg(x[4])
# cart and shaft
self.cart.set_x(-st.cart_length/2 + x0)
self.pendulum_shaft.center = [x0, 0]
t_phi1 = (mpl.transforms.Affine2D().rotate_deg_around(x0, 0, phi1)
+ self.axes.transData)
t_phi2 = (mpl.transforms.Affine2D().rotate_deg_around(x0, 0, phi2)
+ self.axes.transData)
# long pendulum
self.long_pendulum.set_xy([-st.long_pendulum_radius + x0, 0])
self.long_pendulum.set_transform(t_phi1)
self.long_pendulum_weight.set_xy([-st.pendulum_weight_radius
+ x0, st.long_pendulum_height])
self.long_pendulum_weight.set_transform(t_phi1)
# short pendulum
self.short_pendulum.set_xy(np.array([-st.short_pendulum_radius, 0])
+ np.array([x0, 0]))
self.short_pendulum.set_transform(t_phi2)
self.short_pendulum_weight.set_xy([-st.pendulum_weight_radius + x0,
st.short_pendulum_height])
self.short_pendulum_weight.set_transform(t_phi2)
self.canvas.draw()
评论列表
文章目录