Aujourd'hui, j'ai décidé de dessiner une figure écrite en graffiti avec un programme (matplotlib), alors je l'ai dessinée en Python.
fractal.py
import matplotlib.pyplot as plt
import matplotlib.collections as mc
import numpy as np
import math
def return_point(p1, p2):
point = (p2-p1)*0.08 + p1
return point
N = 1000
x = np.linspace(-1, 1, N)
x_point = [0, 100, 200]
y_point = [0, math.sqrt(3)*100, 0]
for i in range (N):
new_x_point = return_point(x_point[i], x_point[i+1])
new_y_point = return_point(y_point[i], y_point[i+1])
x_point.append(new_x_point)
y_point.append(new_y_point)
fractal = [[(x_point[i], y_point[i]), (x_point[i+1], y_point[i+1])] for i in range(N)]
lc = mc.LineCollection(fractal, colors='#333333', linewidths=1, antialiased=True)
fig = plt.figure(figsize=(10,10))
ax = fig.add_subplot(1,1,1)
#↓ Paramètres non essentiels
ax.set_axis_bgcolor('#f3f3f3')
plt.gca().spines['right'].set_visible(False)
plt.gca().spines['left'].set_visible(False)
plt.gca().spines['top'].set_visible(False)
plt.gca().spines['bottom'].set_visible(False)
plt.tick_params(labelbottom=False, labelleft=False, labelright=False, labeltop=False)
#↑ Paramètres non essentiels
ax.add_collection(lc)
ax.autoscale()
plt.savefig('./fractal.png')
Il est également amusant de changer la valeur de «0,08» dans la 7ème ligne «point = (p2-p1) * 0,08 + p1».
Oh, magnifique (probablement sur une pochette de CD) (Au fait, si vous avez un nom, merci de me le faire savoir dans la section commentaires)
Strictement parlant, je pensais que ce n'était pas une figure fractale, donc j'ai changé le titre de "J'ai essayé de dessiner une figure fractale en utilisant Python" en "J'ai essayé de dessiner une figure pseudo fractale en utilisant Python".
Merci beaucoup.
** Créez une figure fractale avec python part1 (Shelpinsky's Gasket) ** https://qiita.com/okakatsuo/items/f2e79fc501ed9f799734
** Comment dessiner plusieurs lignes avec Matplotlib ** https://omedstu.jimdofree.com/2019/10/04/matplotlibで複数の線集合を描画する方法/
** Un très résumé de matplotlib ** https://qiita.com/nkay/items/d1eb91e33b9d6469ef51#2-グラフaxesの作成
Recommended Posts