開発環境
- macOS High Sierra - Apple
- Emacs (Text Editor)
- Python 3.6 (プログラミング言語)
Pythonからはじめる数学入門 (Amit Saha (著)、黒川 利明 (翻訳)、オライリージャパン)の6章(幾何図形とフラクタルを描画する)、5.4(プログラミングチャレンジ)、問題6-1(正方形に円を詰める)を取り組んでみる。
コード(Emacs)
Python 3
#!/usr/bin/env python3
import matplotlib.pyplot as plt
ax = plt.axes(xlim=(0, 6), ylim=(0, 6))
ax.set_aspect('equal')
def draw_square():
square = plt.Polygon([(1, 1), (5, 1), (5, 5), (1, 5)], closed=True)
print(square)
ax.add_patch(square)
def draw_circle(x, y):
circle = plt.Circle((x, y), radius=0.5, facecolor='green', edgecolor='red')
print(circle)
ax.add_patch(circle)
if __name__ == '__main__':
draw_square()
x = 1.5
while x <= 4.5:
y = 1.5
while y <= 4.5:
draw_circle(x, y)
y += 1
x += 1
plt.savefig('sample1.svg')
入出力結果(Terminal, Jupyter(IPython))
$ ./sample1.py Poly((1, 1) ...) Circle(xy=(1.5, 1.5), radius=0.5) Circle(xy=(1.5, 2.5), radius=0.5) Circle(xy=(1.5, 3.5), radius=0.5) Circle(xy=(1.5, 4.5), radius=0.5) Circle(xy=(2.5, 1.5), radius=0.5) Circle(xy=(2.5, 2.5), radius=0.5) Circle(xy=(2.5, 3.5), radius=0.5) Circle(xy=(2.5, 4.5), radius=0.5) Circle(xy=(3.5, 1.5), radius=0.5) Circle(xy=(3.5, 2.5), radius=0.5) Circle(xy=(3.5, 3.5), radius=0.5) Circle(xy=(3.5, 4.5), radius=0.5) Circle(xy=(4.5, 1.5), radius=0.5) Circle(xy=(4.5, 2.5), radius=0.5) Circle(xy=(4.5, 3.5), radius=0.5) Circle(xy=(4.5, 4.5), radius=0.5) $
0 コメント:
コメントを投稿