python绘制分形图案
时间: 2024-10-09 18:16:19 浏览: 79
在Python中,可以利用matplotlib库或者更专业的绘图库如fractalpy、numpy等来绘制分形图案,如著名的毕达哥拉斯三角形、雪花曲线、科赫岛等。分形是一种自相似的几何形状,通过递归算法生成复杂的无限细节。
以下是使用matplotlib简单绘制一个基本的Sierpinski三角形的例子:
```python
import matplotlib.pyplot as plt
from matplotlib.patches import Polygon
def sierpinski_triangle(polygon, n):
if n == 0:
return [polygon]
small_polygons = []
for i in range(3):
polygon_copy = polygon.copy()
polygon_copy.vertices = [(a + b) / 2 for a, b in zip(polygon_copy.vertices, polygon_copy.vertices[i:i+2])]
small_polygons.append(polygon_copy)
return sierpinski_triangle(small_polygons, n - 1) + [Polygon(polygon)]
def draw_sierpinski(n=4):
fig, ax = plt.subplots()
ax.set_xlim(-1, 1)
ax.set_ylim(-1, 1)
# 创建大三角形
triangle = [[-1, 0], [0, -1], [1, 0]]
triangles = sierpinski_triangle(Polygon(triangle), n)
colors = ['b', 'r', 'g']
for tri, color in zip(triangles, colors):
ax.add_patch(Polygon(tri.exterior, fill=False, edgecolor=color))
plt.show()
draw_sierpinski()
```
在这个例子中,`n`表示分形级别的深度,值越大,分形结构越复杂。
阅读全文