Python 표준 라이브러리 터틀에서 함수 그리기

8351 단어 Pythontech

이른바 터틀


Python 표준 그래픽 라이브러리
예전에 파이썬이라는 참고서가 처음 나왔을 때 이게 뭐야!이렇게 쉽게 그려지냐!이렇게 놀란 기억이 있어요.
파이썬은 3년이 지났지만 그래도 많죠. 참고자료를 보고 이걸로 그림 그리는 기사를 쓰기로 했어요.
방정식 참조에 링크

turtle의 개념


포인트는 만년필로 그림을 그리는 것이다.
이 펜만 알면 뭐라도 써 볼 수 있어.
일단 반경 200의 원을 그려보자.
y = r\cos(\theta)\\
x = r\sin(\theta)

import turtle
import numpy

if __name__ == "__main__":
    # 半径の設定
    r = 200

    # ペンを最初の位置にもっていく
    turtle.penup()
    turtle.goto(r, 0)
    turtle.pendown()

    # 円を描く
    for th in numpy.linspace(0, 2 * numpy.pi, 200):
        x = r * numpy.cos(th)
        y = r * numpy.sin(th)
        turtle.goto(x, y)

    # 停止する
    turtle.done()
이렇게 하면 그림에 이런 느낌이 든다.
円の描画

스크루


그럼 좀 신경 쓰는 것도 그려 보세요.plot_axis() 함수로 X축, Y축을 그리고 나선형의 그림을 그린다.
x = a * e^{b\theta}\cos(\theta)\\
y = a * e^{b\theta}\sin(\theta)
import turtle
import numpy
import time

def plot_axis(size=300):
    turtle.penup()
    turtle.goto(0, -size)
    turtle.pendown()
    turtle.goto(0, size)

    turtle.penup()
    turtle.goto(-size, 0)
    turtle.pendown()
    turtle.goto(size, 0)


def spiral(a, b):
    for th in numpy.linspace(0, 15 * numpy.pi, 500):
        x = a * numpy.exp(b * th) * numpy.cos(th)
        y = a * numpy.exp(b * th) * numpy.sin(th)
        turtle.goto(x, y)

if __name__ == "__main__":
    r = 200

    plot_axis()

    turtle.penup()
    turtle.goto(r, 0)
    turtle.pendown()
    spiral(5, 0.07)
    turtle.done()
이렇게 하면 축과 나선이 그려진다.

총결산


그림뿐만 아니라 그림을 그리는 모습도 애니메이션으로 보여지니 다양한 그림을 그리며 즐길 수 있게 해주세요.

좋은 웹페이지 즐겨찾기