图形旋转变换Python
时间: 2023-11-05 12:00:32 浏览: 90
要在Python中进行图形旋转变换,可以使用NumPy和Matplotlib库。
首先,我们需要导入这两个库:
```python
import numpy as np
import matplotlib.pyplot as plt
```
然后,我们可以定义一个包含初始图形坐标的NumPy数组。例如,下面的代码定义了一个三角形:
```python
points = np.array([[0, 0], [0.5, 1], [1, 0]])
```
接下来,我们可以使用Matplotlib的plot函数绘制这个初始图形:
```python
plt.plot(points[:, 0], points[:, 1])
```
现在,我们可以定义一个旋转矩阵,该矩阵将应用于初始图形。例如,下面的代码定义了一个绕原点旋转45度的旋转矩阵:
```python
theta = np.radians(45)
c, s = np.cos(theta), np.sin(theta)
rotation_matrix = np.array([[c, -s], [s, c]])
```
最后,我们可以将旋转矩阵应用于初始图形的坐标,从而获得旋转后的图形坐标。例如,下面的代码将旋转矩阵应用于三角形的坐标:
```python
rotated_points = points.dot(rotation_matrix)
```
最后,我们可以使用Matplotlib的plot函数绘制旋转后的图形:
```python
plt.plot(rotated_points[:, 0], rotated_points[:, 1])
```
完整的代码如下所示:
```python
import numpy as np
import matplotlib.pyplot as plt
# 定义初始图形坐标
points = np.array([[0, 0], [0.5, 1], [1, 0]])
# 绘制初始图形
plt.plot(points[:, 0], points[:, 1])
# 定义旋转矩阵
theta = np.radians(45)
c, s = np.cos(theta), np.sin(theta)
rotation_matrix = np.array([[c, -s], [s, c]])
# 将旋转矩阵应用到初始图形坐标
rotated_points = points.dot(rotation_matrix)
# 绘制旋转后的图形
plt.plot(rotated_points[:, 0], rotated_points[:, 1])
# 显示图形
plt.show()
```
阅读全文