Черепаха и нарисуйте дерево с Transcrypt
Сегодня я хочу нарисовать дерево в браузере с 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()
И я хочу запустить его в браузере, чтобы получить этот эффект:
Не беспокойтесь о тексте поверх дерева, оно написано на польском языке;) Я запускаю это в Skulpt, может быть, вы слышали об этом, эффект выше. Теперь я хочу запустить это в Transcrypt и сравнить с Skulpt и Brython.
Как вы можете видеть здесь: http://www.transcrypt.org/live/turtle_site/turtle_site.html
Транскрипт как-то умеет рисовать с черепахой.
Какие изменения в этом коде, чтобы работать с Transcrypt?
ты можешь помочь мне с этим?
1 ответ
Во-первых: вам нужно внести некоторые изменения в код, потому что некоторые функции в 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.js
, turtle_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 секунду (или меньше).