二维分形学代码,可以单独输出信息维
时间: 2024-03-09 08:50:51 浏览: 56
以下是一个简单的二维分形代码,使用Python的Matplotlib库绘制谢尔宾斯基三角形:
```python
import numpy as np
import matplotlib.pyplot as plt
def sierpinski_triangle(n):
# 初始化三个角点
points = np.array([[0, 0], [1, 0], [0.5, 0.5*np.sqrt(3)]])
# 遍历n次
for i in range(n):
# 随机选取一个点作为起点
index = np.random.randint(0, 3)
point = points[index]
# 计算起点和随机选取的一个角点的中点
midpoint = (point + points[0 if index == 2 else index + 1]) / 2
# 在中点处添加新的点
points = np.vstack([points, midpoint])
return points
points = sierpinski_triangle(7)
# 分别输出x坐标和y坐标
print(points[:, 0])
print(points[:, 1])
# 绘制谢尔宾斯基三角形
plt.scatter(points[:, 0], points[:, 1], s=0.1, c='black')
plt.axis('equal')
plt.show()
```
运行代码后,会绘制一个谢尔宾斯基三角形,并输出其中所有点的x坐标和y坐标。其中,`n`表示递归的深度,`points`是一个二维数组,每一行表示一个点的坐标。在递归过程中,每一个三角形都会被分成四个小三角形,并在每一个小三角形的中点处添加新的点。
阅读全文