绘制二维直角坐标系和坐标网格的线性变换的动画python代码
时间: 2024-04-30 18:24:37 浏览: 12
以下是绘制二维直角坐标系和坐标网格的线性变换的动画Python代码:
```python
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
# 绘制二维直角坐标系和坐标网格
fig, ax = plt.subplots()
plt.xlim(-5, 5)
plt.ylim(-5, 5)
plt.axhline(y=0, color='k')
plt.axvline(x=0, color='k')
plt.grid(True)
# 定义初始状态
x = np.linspace(-5, 5, 100)
y = np.sin(x)
line, = ax.plot(x, y)
# 定义变换矩阵
A = np.array([[1, 1], [0, 2]])
# 定义变换函数
def animate(frame):
global x, y, A, line
# 计算变换后的新坐标
xy = np.vstack([x, y])
new_xy = A.dot(xy)
# 更新线条
line.set_xdata(new_xy[0])
line.set_ydata(new_xy[1])
return line,
# 创建动画对象
ani = FuncAnimation(fig, animate, frames=50, interval=50, blit=True)
# 显示动画
plt.show()
```
在这个例子中,我们首先绘制了二维直角坐标系和坐标网格。然后,我们定义了一个初始状态,即一条正弦曲线。接着,我们定义了一个变换矩阵A,它将通过矩阵乘法应用于坐标点来实现线性变换。最后,我们使用Matplotlib的FuncAnimation类创建了一个动画对象,该对象在每个帧上计算变换后的新坐标并更新线条的位置。在这个例子中,我们使用了50个帧和50毫秒的间隔来创建动画。