5

タートルの遊び方を知っていて、タートルの使い方を知っている人はいますか?

下の図のようにうまく動作しません。【色は無視】

画像

from turtle import *
from math import *


def formulaX(R, r, p, t):
    x = (R-r)*cos(t) - (r+p)*cos((R-r)/r*t)

def formulaY(R, r, p, t):
    y = (R-r)*sin(t) - (r+p)*sin((R-r)/r*t)

def t_iterating(R, r, p):
    t = 2*pi
    up()
    goto(formulaX, formulaY)
    down()

    while (True):
        t = t+0.01
        formulaX(R, r, p, t)
        formulaY(R, r, p, t)


def main():
    R = int(input("The radius of the fixed circle: "))
    r = int(input("The radius of the moving circle: "))
    p = int(input("The offset of the pen point, between <10 - 100>: "))

    if p < 10 or p > 100:
        input("Incorrect value for p!")

    t_iterating(R, r, p)

    input("Hit enter to close...")

main()'

そんな形を目指しています。これまでに行ったコーディングは次のとおりです。私はパイソンが苦手です。

ありがとうございました。私は助けが必要です。ありがとう!

4

5 に答える 5

2

いいえ!あなたはタートルの要点を逃しています!タートルの相対的な動きですべてを行うようにしてください。あなたが亀で、大きな床を這い、お尻から絵筆を引きずっている場合、どのように形を描くか考えてみてください。

時間の小さな断片ごとに、タートルは微分方程式の小さな反復を 1 回実行し、それが全体の動作を支配します。一般に、xy 座標を事前に計算してタートルの GOTO 関数を使用することは賢明ではありません。

タートル自体は、周囲の相対的な知識のみを持つ必要があります。向きがあり、位置があります。そして、この 2 つの状態は、回転と移動によって変更されます。

では、スパイラルをどのように描くかを考えてみましょう。特に、最初の円を描くことを考えてください。円が閉じているように見えると、興味深いことが起こります。それはごくわずかに外れますが、それは円の一部であることがわかります. 合計すると完全な 1 回転になるため、円の大きなパターンを円で閉じているのは、この欠けている曲率です。

フィギュア全体が描かれると、カメは元の位置と向きに戻ります。


この回答のトーンについてお詫び申し上げます。私は80年代の子供でした。Apple IIE と一緒に学習センターに行きました。数年後、私は実際にマインドストームを読みました。カメについての誤った考えを広めるのは非常に簡単で、カメの教育的価値、IMO を損なうことになります。

于 2013-09-21T19:36:32.057 に答える