gpt4 book ai didi

python - 用 Transcrypt 龟并画一棵树

转载 作者:行者123 更新时间:2023-11-28 16:21:41 38 4
gpt4 key购买 nike

今天我想用 Transcrypt 在浏览器中画一棵树。我有 Python 代码,可以在 Skulpt 中使用:

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 中运行这个,也许你听说过,上面有效果。现在我想在 Transcrypt 中运行它并将其与 Skulpt 和 Brython 进行比较。

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

Transcrypt 可以用 turtle 绘制。

为了使用 Transcrypt,这段代码有什么变化?

你能帮我解决这个问题吗?

最佳答案

首先:您需要对代码进行一些修改,因为 Transcrypt 中的一些函数有不同的名称或不存在。您必须添加 turtle.done()显示结果。

turtle_tree.py

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.up() # penup()
myTurtle.back(size) # backward(size)
myTurtle.down() # pendown()

#window = turtle.Screen() # doesn't exists
#window.setup(800,600) # doesn't exists
#window.bgcolor("white") # doesn't exists

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

tree(135, myTurtle)

myTurtle.done() # display

安装 Transcrypt使用 pip

pip install transcrypt

将 Python 编译成 JavaScript

transcrypt turtle_tree.py

你得到文件夹 __javascript__带文件 turtle_tree.js (和 turtle_tree.min.jsturtle_tree.mod.js 但你现在不需要它)

您需要加载 HTML 文件 turtle_tree.js并且有 <div id="__turtlegraph__">显示结果。

turtle_tree.html

<!DOCTYPE html>

<html>

<head>
<meta charset="utf-8"/>
<title>Turtle Tree</title>

<style>
#__turtlegraph__ {
height: 600px;
width: 800px;
}
</style>
</head>

<body>

<div id="__turtlegraph__"></div>
<script src='turtle_tree.js'></script>

</body>

</html>

将 HTML 文件放入 __javascript__文件夹并在浏览器中打开它。


在 Python 3.5.2/Linux Mint 17.3/Firefox 48.0 上测试 - 绘制时间为 1 秒(或更短)。

enter image description here

关于python - 用 Transcrypt 龟并画一棵树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39822733/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com