欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

迭代法动态生成谢尔宾斯基三角形

程序员文章站 2022-04-01 12:39:18
...

定义初始点和随机点

import matplotlib.pyplot as plt
import numpy as np
colors = ['r','g','b']
x0 = (0,0)
x1 = (10, 0)
x2 = (5, np.sqrt(75))
z = (3,4)

开始迭代

%matplotlib inline
# 绘制初始地图
fig = plt.figure()
# 1*1网格,第一子图
ax1 = fig.add_subplot(111)
ax1.set_title('triangle')
plt.xlabel('X')
plt.ylabel('Y')
# 打开交互模式
plt.ion()
plt.scatter(x0[0], x0[1], c=colors[0], marker='o')
plt.scatter(x1[0], x1[1], c=colors[1], marker='o')
plt.scatter(x2[0], x2[1], c=colors[2], marker='o')
points = [x0, x1, x2]
import numpy as np
from IPython import display
for i in range(600):
    index = np.random.choice(3)
    z  = ((z[0]+points[index][0])/2, (z[1]+points[index][1])/2)
    display.clear_output(wait=True)
    points.append(z)
    colors.append(colors[index])
    for point, color in zip(points, colors):
        plt.scatter(point[0], point[1], c=color, marker='o')
    plt.pause(0.00000001)
plt.draw()

迭代法动态生成谢尔宾斯基三角形