乌龟和画笔树

2024-05-28 18:30:44 发布

您现在位置:Python中文网/ 问答频道 /正文

今天我想用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()

我想在浏览器中运行它来获得这个效果:

image 别担心树上的文字,是波兰语;)我用Skulpt运行这个,也许你听说过,你有上面的效果。 现在我想在RapydScript中运行它,并将其与Skulpt和Brython进行比较。在

我想知道在RapydScript中是否可能,因为这个代码使用了海龟模块。 我想我需要改变这段代码在RapydScript上运行。 RapydScript允许导入海龟模块吗?在

如您所见: http://www.transcrypt.org/live/turtle_site/turtle_site.html

Transcrypt(类似于RapydScript的工具)可以用turtle画画。在

你能帮我做这个吗?在

当然我想使用Python,我知道RapydScript允许使用JavaScript,但是我想要Python:)


Tags: 代码importtreesizeif浏览器randomwindow
2条回答

请参见RapydScript repo中的src/lib-没有turtle模块。而且它不能从Python导入turtle模块,因为它不能在浏览器的画布上绘制。所以如果不创建海龟模块,就不能绘制树。在

如@furas所述,基本repo中没有turtle模块。首先,我认为您误解了turtle模块是什么,它只不过是另一个图形库的抽象。即使在Python中,它也不是处理图形的首选方式,它只是Logo工具箱的一个子集,目的是让孩子们更容易编程。在

尽管如此,Transcrypt与RapydScript存在于完全相同的JavaScript世界中,它使用的turtle与Python的turtle无关,它是SVG的包装器。事实上,这里是:https://github.com/JdeH/Transcrypt/blob/master/transcrypt/modules/turtle/init.py

看看这些代码,我可以告诉你,你可以把它几乎一字不差地复制粘贴到RapydScript中,在那里“获得”一个海龟模块。RapydScript支持代码所做的一切,甚至RS和Transcrypt之间的导入机制也会起相同的作用。在

此外,快速的Google搜索显示了这个turtle模块的2个JavaScript实现(您只需将其附加到与RapydScript相同的页面上,并将它们当作Python使用):
http://berniepope.id.au/html/js-turtle/turtle.html
https://github.com/davebalmer/turtlewax

最后,无论您是否使用turtle模块,都不会使您的代码或多或少成为Python。您似乎还有一个误解,即使用RapydScript中的JavaScript库,您需要用JavaScript编写其余的代码。事实并非如此,RapydScript examples目录已经显示了D3canvas和{a6}示例。没有turtle模块的原因是与JavaScript(和RapydScript)可以访问的图形库相比,它已经过时了。不过,我们欢迎您使用turtle模块实现来执行pull请求。在

相关问题 更多 >

    热门问题