突然ですが皆さんこの模様をご存知ですか?
つい懐かしくなってさらっと書いちゃいました(笑)。
書いた後に塗りつぶしてアレンジしたりと、応用が効いて当時は楽しんでいた記憶があります。図工の時間で作ったっけ?
いつか完璧に綺麗な模様を描きたいと強く願っていました。そしてついにPythonのグラフ描画ライブラリmatplotlibを使って簡単に実装できたのでご紹介します。
※この模様の正式名称はなんだろ...読者の方で知ってる方が居ましたらコメントお願いします!(そもそも作ったことある??)
まずはシンプルに
先の画像と同じデザインのグラフを描画してみます。
import matplotlib.pyplot as plt
LINES = 20
j = LINES
for i in range(0, LINES + 1, 1):
plt.plot([i, 0], [0, j])
j -= 1
plt.show()
出力がこちら。
デフォルトでは線の色が統一されてないうえに目がチカチカするので黒に統一しましょう。
ここから先は線の描画部分のみ記載していきます。
# 線を黒に変更
plt.plot([i, 0], [0, j], color = '#000000')
こちらの方が見やすいですね。
2つ組み合わせて目の形に
先のグラフの対角線上にもう1つ同じものを作成して目の形を作ってみましょう。
# 左下に表示
plt.plot([i, 0], [0, j], color = '#000000')
# 右上に表示
plt.plot([i, LINES], [LINES, j], color = '#000000')
for文で回して描画するので一行だけで増やすことができます。
思い切って4つ作る
さらに2つ増やして4つ作ってみます。
# 左下に表示
plt.plot([i, 0], [0, j], color = '#000000')
# 左上に表示
plt.plot([0, i], [i, LINES], color = '#000000')
# 右下に表示
plt.plot([LINES, j], [j, 0], color = '#000000')
# 右上に表示
plt.plot([i, LINES], [LINES, j], color = '#000000')
複雑怪奇な模様もPython × matplotlibなら簡単に表現できますね!
線の数を変更してみる
デフォルトでは20本の線を引くように指定しています。
変更するにはLINESの値を増減させてみてください。
LINES = 5の場合
見違えるほどシンプルになりました(笑)。
四角形が回転しているように見えますね。
LINES = 100の場合
細かすぎて見えない...
5本の時と比較すると20倍に線の数が増えたので描画に数秒ほど時間がかかりました。
まとめ
- 手書きとプログラムどっちで書いても楽しい
- 線や模様の数を容易に変更できるのでプログラムなら超時短につながる
- 実用性は皆無だけど暇つぶしに作ってみると割と面白い
- 失敗から生まれる未知な模様の発見↓
最後にこの模様の名前を知っている方はコメントしていただくと幸いです。