Черепаха и рисунок дерева с RapydScript

Сегодня я хочу нарисовать дерево в браузере с 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 этот код использовать модуль Turtle. Я думаю, что мне нужно как-то изменить этот код, чтобы запустить его на RapydScript. Позволяет ли RapydScript импортировать модуль черепахи?

Как вы можете видеть здесь: http://www.transcrypt.org/live/turtle_site/turtle_site.html

Transcrypt (похожий на RapidScript инструмент) каким-то образом может рисовать черепахой.

ты можешь помочь мне с этим?

Конечно, я хочу использовать Python, я знаю, что RapydScript позволяет использовать JavaScript, но я хочу Python:))

2 ответа

Решение

Увидеть src/lib в RapydScript репо - нет turtle модуль. И он не может импортировать модуль черепахи из Python, потому что он не рисует на холсте в браузере. Таким образом, вы не можете нарисовать дерево, если вы не создаете модуль черепахи.

Как уже упоминалось @furas, нет turtle модуль в базе репо. Прежде всего, я думаю, что вы не понимаете, что turtle Модуль, это не что иное, как абстракция вокруг другой графической библиотеки. Даже в Python это не самый предпочтительный способ работы с графикой, это всего лишь набор инструментов Logo, предназначенный для облегчения программирования детям.

При этом Transcrypt существует в том же мире JavaScript, что и RapydScript, turtle он использует не имеет ничего общего с Python turtleОбертка вокруг SVG. На самом деле, вот оно: https://github.com/JdeH/Transcrypt/blob/master/transcrypt/modules/turtle/__init__.py

И, глядя на этот код, я могу вам сказать, что вы можете почти дословно скопировать и вставить его в RapydScript, чтобы "получить" модуль черепахи. Все, что делает код, поддерживается RapydScript, даже механизм импорта между RS и Transcrypt будет работать одинаково.

Кроме того, быстрый поиск в Google выявил 2 реализации этого JavaScript. turtle модуль (который вы можете просто прикрепить к той же странице, что и RapydScript, и использовать их, как если бы они были Python):
http://berniepope.id.au/html/js-turtle/turtle.html
https://github.com/davebalmer/turtlewax

Наконец, используете ли вы turtle Модуль не делает ваш код более или менее Python. Похоже, у вас также есть неправильное представление о том, что при использовании библиотеки JavaScript от RapydScript вам нужно написать остальную часть кода на JavaScript. Это не так, каталог примеров RapydScript уже показывает примеры D3, canvas и WebGL. Причина, по которой нет модуля turtle, заключается в том, что он устарел по сравнению с графическими библиотеками, к которым имеет доступ JavaScript (и RapydScript). Однако вы можете сделать запрос на извлечение с использованием модуля Turtle.

Другие вопросы по тегам