Pythonのmatplotlibを使ったらGenerative Artっぽいことができる?
ということでやってみました。
matplotlibを使う
Pythonはツールが充実しているのでGenerativeArt用のライブラリとかありそうですが、matplotlibを使いました。
math.cosとmath.sinを使って円をつくり、randomで散りばめています。
円の個数は50個で円の幅は10にしています。
色はmatplotlibが自動で付けているものです。
コードはこちら↓
import matplotlib.pyplot as plt import math import random w=10 N=50 for _ in range(N): xp=random.uniform(-w,w) yp=random.uniform(-w,w) x = [] for i in range(360): i = math.cos(math.radians(i))+xp x.append(i) y = [] for i in range(360): i = math.sin(math.radians(i))+yp y.append(i) plt.plot(x,y) plt.axis('equal') plt.grid(color="0.8") plt.show()
円の半径をランダムにする
次は、円の幅を変えてみます。
円の幅を変えるにはcos、sinに半径をかけます。
コードはこちら↓
import math import random import matplotlib.pyplot as plt w = 10 N = 50 for _ in range(N): xp = random.uniform(-w, w) yp = random.uniform(-w, w) r = random.random() * 3 x = [] for i in range(360): i = math.cos(math.radians(i)) * r + xp x.append(i) y = [] for i in range(360): i = math.sin(math.radians(i)) * r + yp y.append(i) plt.plot(x, y) plt.axis("equal") plt.grid(color="0.8") plt.show()
変数「r」が半径の幅を変えているものです。
matplotlibを使えば、GenerativeArtができそうです。
しかし、かっこいいものができるのは、まだまだかかりそうです。