0

Python でタートル モジュールをいじって、他の誰か (Dmitri Kurilo) によって書かれたコードにいくつかの要素を微調整していることに気付きました。私はそれでかなりきれいな体型になり、美しい曲線を形成しました. 私は数学についてほとんど知らないので、ここで何が起こっているのかを解読するのを手伝ってくれる人がいるかもしれません! どうもありがとう、ここにコードがあります!:

import turtle, random
from math import *
def fib(n):    
    for n in range(400):
        turtle.color("black")
        turtle.right(pi*19)
        turtle.forward(n)
        if n > 400:
            break    

turtle.title("The Looping ball")
turtle.colormode(255)
turtle.color("white")
turtle.goto(0,0)
turtle.color("black")
turtle.speed(500)
fib(1)
turtle.getscreen()._root.mainloop()
4

2 に答える 2

2
import turtle, random
from math import *

のインポートrandomは不要です。最終的にはturtleとのみmath.piが使用されます。

def fib(n):    
    for n in range(400):
        turtle.color("black")
        turtle.right(pi*19)
        turtle.forward(n)
        if n > 400:
            break

400 の線分で構成された図形を描きます。2 つの線分はそれぞれ 59.69 度の角度を持ち (turtleモジュールはデフォルトで度を使用します)、すべての線分は前の線分より 1 単位長くなります。これにより、ほぼ 6 角の渦巻きが得られるはずですが、セグメント間の角度が完全な 1 回転 (60 度) の 6 分の 1 ではないため、わずかにずれています。

このパラメーターはループ内でn上書きされるため、使用されないことに注意してください。n条件n > 400に到達することはありません (range(400)範囲が 0 から 400 を除くため)。そのため、ループの最後の部分は言及する価値がありません。

次に、主要部分について説明します。

turtle.title("The Looping ball")
turtle.colormode(255)
turtle.color("white")
turtle.goto(0,0)
turtle.color("black")
turtle.speed(500)

結果のウィンドウのいくつかの設定が選択されます: タイトルが設定され、colormodeが設定され (色の値を指定する方法。ここでは使用されません)、画面の中央に白い線を引き、そこにタートルを残します (使用turtle.penup()して、turtle.pendown()このため)、描画速度をできるだけ速く設定します(turtle.speed(0)同じことを行い、10より大きいものは と同じですturtle.speed(0))。

fib(1)

らせんが描かれています。

turtle.getscreen()._root.mainloop()

プログラムの制御は、画面のメイン イベント ループに渡されturtleます。そうしないと、描画が完了した直後にウィンドウが閉じてしまいます。メインループを「実行」すると、ウィンドウが開いている限り、プログラムは存続します。

于 2013-01-26T22:53:39.177 に答える
2

元のプログラムのより明確なバージョン:

import turtle

def fib(num, rot=59.7, scale=1.0):
    for n in range(num):
        turtle.right(rot)
        turtle.forward(n*scale)

turtle.title('The Looping ball')
turtle.speed(2000)
turtle.pencolor('blue')
fib(400, rot=92, scale=0.75)
turtle.getscreen()._root.mainloop()

これにより、不要なものの一部が削除され、いくつかの値がパラメーター化されるため、OP は行数、各行の前の回転、および行の長さで遊ぶことができます。これは、各パラメーターがどのように変化するかを把握するのに役立ちます。

于 2013-01-26T23:24:28.617 に答える