2019年1月30日水曜日

開発環境

Math Adventures with Python: An Illustrated Guide to Exploring Math with Code (Peter Farrell(著)、No Starch Press)のPART Ⅰ(HITCHIN' UP YOUR PYTHON WAGON)、1(DRAWING POLYGONS WITH THE TURTLE MODULE)、EXERCISE1-6(A STAR IS BORN)の解答を求めてみる。

コード

Python 3

#!/usr/bin/env python3
import time
import turtle
# 保存用
import io
from PIL import Image


def save(filename):
    ''' png形式の画像として保存 '''
    ps = turtle.getscreen().getcanvas().postscript()
    with io.BytesIO() as buffer:
        buffer.write(ps.encode())
        im = Image.open(buffer)
        im.save(filename)


angle_star = 180 - (180 - 180 * 3 / 5) * 2
print(angle_star)


def star(length=100):
    for _ in range(5):
        turtle.forward(length)
        turtle.right(180 - angle_star)


turtle.shape('turtle')
turtle.speed(0)
star()
save('star.png')
turtle.clearscreen()


def star_spiral():
    for i in range(1, int(360 / 5) + 1):
        star(5 * i)
        turtle.right(5)


turtle.shape('turtle')
turtle.speed(0)
star_spiral()
save('star_spiral.png')

入出力結果(cmd(コマンドプロンプト)、Terminal、Jupyter(IPython))

$ python3 sample6.py
36.0
$

0 コメント:

コメントを投稿