python绘制奇异三角形 : 一个边长为x的0阶奇异三角形,是一个边长为x的等边三角形。 一个边长为x的n阶奇异三角形,是一个边长为x的等边三角形,三个角上分别是一个边长为x/2的n-1阶奇异三角形。 输入整数 n(0<=n<=5),绘制n阶奇异三角形。
时间: 2024-11-06 07:21:39 浏览: 26
python 叠加等边三角形的绘制的实现
5星 · 资源好评率100%
在Python中,你可以使用递归的方式结合matplotlib库来绘制奇异三角形。这里是一个函数实现的例子:
```python
import matplotlib.pyplot as plt
import numpy as np
def sierpinski_triangle(n, x=1):
if n == 0:
# 基本情况:0阶为等边三角形
return np.array([[0, x], [x / 2, x / 2], [x, 0]])
# 递归情况:创建子三角形并组合
sub_triangles = [sierpinski_triangle(n - 1, x / 2) for _ in range(3)]
return np.vstack((np.row_stack(sub_triangle) for sub_triangle in zip(*sub_triangles)))
def plot_sierpinski(n):
fig, ax = plt.subplots()
ax.set_xlim(0, 1)
ax.set_ylim(0, 1)
ax.axis('off') # 关掉坐标轴
triangle_points = sierpinski_triangle(n)
plt.fill_between(triangle_points[:, 0], triangle_points[:, 1], color='black')
plt.title(f"N={n}阶奇异三角形")
plt.show()
# 示例:绘制3阶奇异三角形
plot_sierpinski(3)
阅读全文