import numpy as np
import matplotlib.pyplot as plt
from matplotlib.patches import Circle, FancyArrowPatch
from matplotlib.animation import FuncAnimation# 创建一个新图和坐标轴
fig, ax = plt.subplots()# 设置坐标轴的等比例,确保圆圈是正圆
ax.set_aspect('equal')# 限制坐标轴的范围
ax.set_xlim(-1.5, 1.5)
ax.set_ylim(-1.5, 1.5)# 绘制一个圆圈
circle = Circle((0, 0), 1, color='blue', fill=False) # 圆圈不填充
ax.add_patch(circle)# 初始化箭头的参数
arrow = FancyArrowPatch((0, 0), (1, 0), color='red', mutation_scale=20, arrowstyle='->', lw=3)
ax.add_patch(arrow)# 初始化角度
angle = 0# 更新函数,用于动画
def update(frame):global angleangle += 0.05 # 每次旋转0.05弧度# 更新箭头的位置arrow.set_positions((0, 0), (np.cos(angle), np.sin(angle))) # 箭头始终从圆心指向圆周return arrow,# 创建动画
ani = FuncAnimation(fig, update, frames=np.arange(0, 360), interval=50, blit=True)# 显示图形
plt.show()