ランダムに円を描画する【Python】の続きです
式を変えてランダムにハート型を描画するプログラムです
変えたところを主に紹介いたします
hsize = random.randint(10,70)
#ランダムでハートの大きさを変える設定です
en += np.fromfunction(lambda x,y: (x-m)**2+((y-n)-(abs(x-m))**0.95)**2 <hsize**2, (sizex,sizey))
#複雑な式になってしまいました。順に説明します
円の基本式は x^2+y^2=r^2
円の内側を描画するために x^2+y^2 < r^2
ハートの式 x^2+(y-|x|^0.95)^2<r^2
#0.95を小さくすると円に近づきます
座標を入れると
(x-m)^2+((y-n)-|x-m|^0.95)^2 < r^2
実はこのままだとハートを横倒しにした形❥になるので、座標変換を行いました
単純に
en.transpose()を使うと逆ハート型になってしまいましたので、自力で反転しました
for m in range(sizex):
for n in range(sizey):
han[m][n]=en[n][sizex-1-m]
重なるマークは省くとか考えたらいろんな画像を作れちゃいそうですね
そのうちブログの背景とかサムネがpythonでプログラムした画像になっているかもしれませんねw
<<< ランダムに円を描画する【Python】
0 件のコメント:
コメントを投稿