1

今日は、RapydScript を使用してブラウザで木を描きたいと思います。私はPythonでコードを持っています:

import random
import turtle

def tree(size, myTurtle):
    myTurtle.pensize(size / 20)

    if size < random.randint(1,2) * 20:
        myTurtle.color("green")
    else:
        myTurtle.color("brown")

    if size > 5:
        myTurtle.forward(size)
        myTurtle.left(25)
        tree(size - random.randint(10, 20), myTurtle)
        myTurtle.right(50)
        tree(size - random.randint(10, 20), myTurtle)
        myTurtle.left(25)
        myTurtle.penup()
        myTurtle.backward(size)
        myTurtle.pendown()

window = turtle.Screen()
window.setup(800,600)
window.bgcolor("white")

myTurtle = turtle.Turtle()
myTurtle.color("brown", "blue")
myTurtle.left(90)
myTurtle.speed(0)
myTurtle.penup()
myTurtle.setpos(0, -250)
myTurtle.pendown()

そして、この効果を得るためにブラウザで実行したい:

画像 ツリー上のテキストについて心配する必要はありません。洗練されています ;) 私はこれを Skulpt で実行します。これを RapydScript で実行し、Skulpt と Brython と比較したいと思います。

このコードはタートルモジュールを使用しているため、RapydScriptで可能かどうか疑問に思っています。RapydScript で実行するには、このコードを何らかの方法で変更する必要があると思います。RapydScript は turtle モジュールのインポートを許可しましたか?

ここでわかるように: http://www.transcrypt.org/live/turtle_site/turtle_site.html

Transcrypt (RapydScript に似たツール) はどうにかしてタートルで描画できます。

これで私を助けてもらえますか?

もちろん、私は Python を使いたいです。RapydScript で JavaScript を使用できることは知っていますが、Python が必要です :))

4

2 に答える 2

2

@furas が述べたようturtleに、ベース リポジトリにはモジュールがありません。まず第一に、モジュールが何であるかを誤解していると思います。turtleそれは、別のグラフィックス ライブラリに関する抽象化にすぎません。Python でさえ、これはグラフィックスを処理する好ましい方法ではありません。これは、プログラミングを子供にとってより簡単にすることを目的とした Logo ツールキットのサブセットに過ぎません。

そうは言っても、Transcrypt は RapydScript とまったく同じ JavaScript の世界に存在し、turtle使用するものは Python のものとは何の関係もなく、turtleSVG のラッパーです。実際、ここにあります: https://github.com/JdeH/Transcrypt/blob/master/transcrypt/modules/turtle/init .py

そのコードを見ると、ほぼそのままコピーして RapydScript に貼り付け、そこにタートル モジュールを「取得」できることがわかります。RS と Transcrypt の間のインポート メカニズムも同じように機能します。

さらに、簡単な Google 検索で、このturtleモジュールの 2 つの JavaScript 実装が明らかになりました (RapydScript と同じページに添付して、Python であるかのように使用できます):
http://berniepope.id.au/html/js-カメ/turtle.html
https://github.com/davebalmer/turtlewax

最後に、モジュールを使用するかどうかturtleによって、コードが Python になることはありません。また、RapydScript の JavaScript ライブラリを使用すると、残りのコードを JavaScript で記述する必要があるという誤解もあるようです。そうではありません。RapydScript の例のディレクトリには、 D3canvas、およびWebGLの例が既に表示されています。タートル モジュールがない理由は、JavaScript (および RapydScript) がアクセスできるグラフィックス ライブラリと比較して時代遅れだからです。ただし、タートル モジュールの実装でプル リクエストを行うことは大歓迎です。

于 2016-10-03T12:30:23.160 に答える
2

RapydScript リポジトリを参照src/libしてください -モジュールはありません。また、ブラウザのキャンバスに描画しないため、Python からタートル モジュールをインポートできません。つまり、turtle モジュールを作成しないと、ツリーを描画できません。turtle

于 2016-10-03T05:53:21.500 に答える