2016-10-02 2 views
3

heute möchte ich einen Baum im Browser mit Transcrypt zeichnen. Ich habe Code in Python, die Arbeit in Skulpt ist:Schildkröte und zeichne einen Baum mit Transcrypt

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() 

Und ich will es in Browser auszuführen, um diesen Effekt zu erzielen:

image Kümmere dich nicht um Text über den Baum, ist in polnisch;) Ich laufe das in Skulptur, vielleicht hörst du darüber, Wirkung hast du oben. Jetzt möchte ich das in Transcrypt ausführen und es mit Skulptur und Brython vergleichen.

Wie Sie hier sehen können: http://www.transcrypt.org/live/turtle_site/turtle_site.html

Transcrypt kann irgendwie mit Schildkröte ziehen.

Welche Änderung in diesem Code, um mit Transcrypt zu arbeiten?

Können Sie mir dabei helfen?

+0

Spróbuję coś pokombinować i dam Ci ZnAc (MAM nadzieję że zaraz). – Nf4r

+0

"Kompilieren und ausführen" sendet Code auf Adresse "http://www.transcrypt.org/compile", aber es erhält die Antwort "404 Seite existiert nicht" (PL: coś im nie działa) – furas

+0

Es scheint, Sie können Transcrypt mit 'installieren pip' und später lesen [Transcrypt doc] (http://sterlicht.alwaysdata.net/transcrypt.org/docs/html/installation_use.html) wie man eine HTML-Seite generiert, die man im Browser ausführen kann. – furas

Antwort

3

Zuerst: Sie benötigen einige Änderungen im Code, weil einige Funktionen in Transcrypt andere Namen haben oder nicht existieren. Sie müssen turtle.done() hinzufügen, um Ergebnisse anzuzeigen.

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 

installieren Transcrypt mit pip

pip install transcrypt 

Compile Python in JavaScript

transcrypt turtle_tree.py 

Sie erhalten Ordner __javascript__ mit Datei turtle_tree.js (und turtle_tree.min.js, turtle_tree.mod.js aber Sie es jetzt nicht brauchen)

Sie müssen HTML-Datei, die turtle_tree.js lädt und hat <div id="__turtlegraph__"> Ergebnis anzuzeigen.

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> 

Put HTML-Datei in __javascript__ Ordner und öffnen Sie sie in Browser.


auf Python Getestet 3.5.2/Linux Mint 17.3/Firefox 48.0 - es in 1 Sekunde zieht (oder weniger).

enter image description here

+0

Hallo, ich bin daran interessiert, welche Funktionen im Transcrypt Turtle-Modul am meisten vermisst werden, so dass sie hinzugefügt werden können. –

+0

Sie haben einen Fehler beim Kompilieren von JS. Transkript turtle_tree.py sollte "transcrypt" sein – Monica

+0

Funktioniert perfekt, danke. – Monica