PythonのTurtpleでグラフィックを描く


小学校や中学校の時、私たちはロゴ言語という言語に触れたことがありますか.この言語は正方形を描き、三角形を描き、円を描くことができます.Pythonで図形を描くのもlogo言語のような意味です.
図面を描く前に、モジュール、turtpleを起動する必要があります.そしてこのturtpleの下にpenという属性があり、その名の通り絵筆の意味です.penという属性を入力すると、idleはPython Turtle Graphicsというものを開き、画面の真ん中に三角の原点があり、この点はlogoに似ている点で、私たちはそれを操作して往復して痕跡を残します.idleで一言書き終わると、後ろのGraphicsが1つ描き、それからもう1つ書き、もう1つ描きます.直接ならpyファイルを作成すると、手順に従ってグラフィックが表示されます.
import turtple
t=turtple.Pen()    #    t       ,    P

原点を50ピクセル前進させる:t.forward(50)
原点を90度左折させる:t.left(90)
原点を30度右折させる:t.right(30)
原点を持ち上げる:t.up()#このようにforwardを使うと痕跡が残らない.ペンが紙面に持ち上げられたからか.
原点を落とす:t.down()
原点を青にする:t.color(「blue」)
青色の塗りつぶしパターンを使用する必要があります:t.begin_fill()#は上の文と組み合わせる必要があります
塗りつぶしパターン停止:t.end_fill()
左右のパターンをクリアし、原点を元の位置に戻します:t.reset()
原点を(70100)の位置に移動させます:t.goto(70100)#中間はカンマであることに注意して、デフォルトのパターン全体は4象限です
上のいくつかの簡単な文を理解すると、この図のような八角形を描くことができます.
この図のプログラムは比較的柔軟です.
import time
import turtle
#x     180*(x-3)
#  :            
#size:            ,                
#point:   
def funcDrawStar(size, point):
    t = turtle.Pen()
    #      
    t.up()
    t.backward(200)
    t.right(90)
    t.forward(100)
    t.left(90)
    t.down()
    #    
    t.color(1, 0, 0)
    t.begin_fill()
    for x in range(1, point * 2 + 1):
        t.forward(size)
        if x % 2 == 0:
            t.left(120)
        else:
            t.right(180 * (point - 2) / point - 60)
    t.end_fill()
    
#funcDrawStar(100, 6)
funcDrawStar(100, 9)

time.sleep(5)

簡単なアプリケーションですが、pythonも素晴らしいグラフィックを描くことができることを知っておく必要があります.例えば、次の図です.
この図形のコードは以下の通りです(コードは転載されています.牛の共有に感謝します.python 3.5親測は使いやすくて、しかも全体の過程はとてもすばらしくて、皆さんに感じてもらうことを強くお勧めします.)
from  numpy import *
from random import random
import turtle
turtle.reset()
x = array([[.5],[.5]])
p = [0.85,0.92,0.99,1.00]
A1 = array([[.85,  0.04], [-0.04,.85]])
b1 = array([[0],[1.6]])
A2 = array([[0.20,-0.26], [0.23,0.22]])
b2 = array([[0],[1.6]])
A3 = array([[-0.15,0.28],[0.26,0.24]])
b3 = array([[0],[0.44]])
A4 = array([[0,0], [0,0.16]])
turtle.color("red")
cnt = 1
while True:
    cnt += 1
    if cnt == 2000:
        break
    r = random()
    if r < p[0]:
        x = dot(A1 , x) + b1
    elif r < p[1]:
        x = dot(A2 , x) + b2
    elif r < p[2]:
        x = dot(A3 , x) + b3
    else:
        x = dot(A4 , x)
    #print x[1]
    turtle.up()
    turtle.goto(x[0][0] * 50,x[1][0] * 40 - 240)
      turtle.down()
      turtle.dot()