2019年2月9日土曜日

開発環境

Math Adventures with Python: An Illustrated Guide to Exploring Math with Code (Peter Farrell(著)、No Starch Press)のPART 2(RIDING INTO MATH TERRITORY)、5(TRANSFORMING SHAPES WITH GEOMETRY)、EXERCISE 5-2(RAINBOW TRIANGLES)の解答を求めてみる。

コード

Python 3

def setup():
    size(600, 600)
    rectMode(CENTER)


t = 0


def draw():
    global t
    background(255)
    translate(width / 2, height / 2)
    rotate(radians(t))
    angle = 90 / 6.0
    for i in range(90):
        if i < angle:
            stroke(255, 255 * i / angle, 0)
        elif i < angle * 2:
            stroke(255 - 255 * (i - angle) / angle, 255, 0)
        elif i < angle * 3:
            stroke(0, 255, 255 * (i - angle * 2) / angle)
        elif i < angle * 4:
            stroke(0, 255 - 255 * (i - angle * 3) / angle, 255)
        elif i < angle * 5:
            stroke(255 * (i - angle * 4) / angle, 0, 255)
        else:
            stroke(255, 0, 255 - 255 * (i - angle * 5) / angle)
        rotate(radians(360 / 90))
        pushMatrix()
        translate(200, 0)
        rotate(radians(t + 2 * i * 360 / 90))
        tri(100)
        popMatrix()
    t += 0.5


def tri(length):
    noFill()
    triangle(0, -length,
             -length * sqrt(3) / 2, length / 2,
             length * sqrt(3) / 2, length / 2)

せっかくだからffmpegImageMagickを利用して動画をGIF形式の画像にしてみた。

0 コメント:

コメントを投稿