Python作业2 蒙特卡罗方法手搓图形
蒙特卡罗方法是一种通过随机采样来解决问题的数学方法,在图形绘制中可以用来估算面积、生成分形图案或创建艺术图形。
# 艺术图形生成(随机游走)
# 通过随机选择方向和步长创建艺术图案
import matplotlib
matplotlib.use('TkAgg') # 切换后端
import random
import numpy as np
import matplotlib.pyplot as plt
def random_walk(n_steps):
angles = np.cumsum(np.random.uniform(0, 2*np.pi, n_steps)) # 累计随机角度变化
steps = np.random.normal(1, 0.2, n_steps) # 正态分布的步长
x = np.cumsum(steps * np.cos(angles)) # x坐标累计和
y = np.cumsum(steps * np.sin(angles)) # y坐标累计和
return x, y
plt.figure(figsize=(6,6))
for _ in range(20):
x, y = random_walk(100)
plt.plot(x, y, alpha=0.5)
plt.axis('equal')
plt.axis('off')
plt.show()