Merge with 3.4
This commit is contained in:
commit
5827da3f9f
|
@ -53,22 +53,28 @@
|
||||||
|
|
||||||
(2) How to add your own demos to the demo repository
|
(2) How to add your own demos to the demo repository
|
||||||
|
|
||||||
- place: same directory as turtledemo/__main__.py
|
- Place the file in the same directory as turtledemo/__main__.py
|
||||||
|
|
||||||
- requirements on source code:
|
- The code must contain a main() function which will
|
||||||
code must contain a main() function which will
|
be executed by the viewer (see provided example scripts).
|
||||||
be executed by the viewer (see provided example scripts)
|
It may return a string which will be displayed in the Label below
|
||||||
main() may return a string which will be displayed
|
the source code window (when execution has finished.)
|
||||||
in the Label below the source code window (when execution
|
|
||||||
has finished.)
|
|
||||||
|
|
||||||
If the demo is EVENT DRIVEN, main must return the string
|
- In order to run mydemo.py by itself, such as during development,
|
||||||
"EVENTLOOP". This informs the demo viewer that the script is
|
add the following at the end of the file:
|
||||||
still running and must be stopped by the user!
|
|
||||||
|
|
||||||
If an "EVENTLOOP" demo runs by itself, as with clock, which uses
|
if __name__ == '__main__':
|
||||||
ontimer, or minimal_hanoi, which loops by recursion, then the
|
main()
|
||||||
code should catch the turtle.Terminator exception that will be
|
mainloop() # keep window
|
||||||
raised when the user presses the STOP button. (Paint is not such
|
|
||||||
a demo; it only acts in response to mouse clicks and movements.)
|
|
||||||
|
|
||||||
|
python -m turtledemo.mydemo # will then run it
|
||||||
|
|
||||||
|
- If the demo is EVENT DRIVEN, main must return the string
|
||||||
|
"EVENTLOOP". This informs the demo viewer that the script is
|
||||||
|
still running and must be stopped by the user!
|
||||||
|
|
||||||
|
If an "EVENTLOOP" demo runs by itself, as with clock, which uses
|
||||||
|
ontimer, or minimal_hanoi, which loops by recursion, then the
|
||||||
|
code should catch the turtle.Terminator exception that will be
|
||||||
|
raised when the user presses the STOP button. (Paint is not such
|
||||||
|
a demo; it only acts in response to mouse clicks and movements.)
|
||||||
|
|
|
@ -3,12 +3,12 @@
|
||||||
|
|
||||||
tdemo_forest.py
|
tdemo_forest.py
|
||||||
|
|
||||||
Displays a 'forest' of 3 'breadth-first-trees'
|
Displays a 'forest' of 3 breadth-first-trees
|
||||||
similar to the one from example tree.
|
similar to the one in tree.
|
||||||
For further remarks see xtx_tree.py
|
For further remarks see tree.py
|
||||||
|
|
||||||
This example is a 'breadth-first'-rewrite of
|
This example is a 'breadth-first'-rewrite of
|
||||||
a Logo program written by Erich Neuwirth. See:
|
a Logo program written by Erich Neuwirth. See
|
||||||
http://homepage.univie.ac.at/erich.neuwirth/
|
http://homepage.univie.ac.at/erich.neuwirth/
|
||||||
"""
|
"""
|
||||||
from turtle import Turtle, colormode, tracer, mainloop
|
from turtle import Turtle, colormode, tracer, mainloop
|
||||||
|
@ -104,6 +104,5 @@ def main():
|
||||||
return "runtime: %.2f sec." % (b-a)
|
return "runtime: %.2f sec." % (b-a)
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
msg = main()
|
main()
|
||||||
print(msg)
|
|
||||||
mainloop()
|
mainloop()
|
||||||
|
|
|
@ -3,11 +3,15 @@
|
||||||
|
|
||||||
tdemo_paint.py
|
tdemo_paint.py
|
||||||
|
|
||||||
A simple eventdriven paint program
|
A simple event-driven paint program
|
||||||
|
|
||||||
- use left mouse button to move turtle
|
- left mouse button moves turtle
|
||||||
- middle mouse button to change color
|
- middle mouse button changes color
|
||||||
- right mouse button do turn filling on/off
|
- right mouse button toogles betweem pen up
|
||||||
|
(no line drawn when the turtle moves) and
|
||||||
|
pen down (line is drawn). If pen up follows
|
||||||
|
at least two pen-down moves, the polygon that
|
||||||
|
includes the starting point is filled.
|
||||||
-------------------------------------------
|
-------------------------------------------
|
||||||
Play around by clicking into the canvas
|
Play around by clicking into the canvas
|
||||||
using all three mouse buttons.
|
using all three mouse buttons.
|
||||||
|
|
|
@ -3,14 +3,10 @@
|
||||||
|
|
||||||
tdemo_peace.py
|
tdemo_peace.py
|
||||||
|
|
||||||
A very simple drawing suitable as a beginner's
|
A simple drawing suitable as a beginner's
|
||||||
programming example.
|
programming example. Aside from the
|
||||||
|
peacecolors assignment and the for loop,
|
||||||
Uses only commands, which are also available in
|
it only uses turtle commands.
|
||||||
old turtle.py.
|
|
||||||
|
|
||||||
Intentionally no variables are used except for the
|
|
||||||
colorloop:
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from turtle import *
|
from turtle import *
|
||||||
|
@ -21,7 +17,7 @@ def main():
|
||||||
"royalblue1", "dodgerblue4")
|
"royalblue1", "dodgerblue4")
|
||||||
|
|
||||||
reset()
|
reset()
|
||||||
s = Screen()
|
Screen()
|
||||||
up()
|
up()
|
||||||
goto(-320,-195)
|
goto(-320,-195)
|
||||||
width(70)
|
width(70)
|
||||||
|
@ -58,7 +54,7 @@ def main():
|
||||||
up()
|
up()
|
||||||
|
|
||||||
goto(0,300) # vanish if hideturtle() is not available ;-)
|
goto(0,300) # vanish if hideturtle() is not available ;-)
|
||||||
return "Done!!"
|
return "Done!"
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
||||||
|
|
|
@ -12,9 +12,9 @@ very light moon!
|
||||||
Planet has a circular orbit, moon a stable
|
Planet has a circular orbit, moon a stable
|
||||||
orbit around the planet.
|
orbit around the planet.
|
||||||
|
|
||||||
You can hold the movement temporarily by pressing
|
You can hold the movement temporarily by
|
||||||
the left mouse button with mouse over the
|
pressing the left mouse button with the
|
||||||
scrollbar of the canvas.
|
mouse over the scrollbar of the canvas.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
from turtle import Shape, Turtle, mainloop, Vec2D as Vec
|
from turtle import Shape, Turtle, mainloop, Vec2D as Vec
|
||||||
|
@ -108,6 +108,5 @@ def main():
|
||||||
return "Done!"
|
return "Done!"
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
msg = main()
|
main()
|
||||||
print(msg)
|
mainloop()
|
||||||
#mainloop()
|
|
||||||
|
|
|
@ -11,9 +11,9 @@ Uses:
|
||||||
(1) a tree-generator, where the drawing is
|
(1) a tree-generator, where the drawing is
|
||||||
quasi the side-effect, whereas the generator
|
quasi the side-effect, whereas the generator
|
||||||
always yields None.
|
always yields None.
|
||||||
(2) Turtle-cloning: At each branching point the
|
(2) Turtle-cloning: At each branching point
|
||||||
current pen is cloned. So in the end there
|
the current pen is cloned. So in the end
|
||||||
are 1024 turtles.
|
there are 1024 turtles.
|
||||||
"""
|
"""
|
||||||
from turtle import Turtle, mainloop
|
from turtle import Turtle, mainloop
|
||||||
from time import clock
|
from time import clock
|
||||||
|
|
|
@ -1,8 +1,16 @@
|
||||||
#!/usr/bin/env python3
|
"""turtledemo.two_canvases
|
||||||
## DEMONSTRATES USE OF 2 CANVASES, SO CANNOT BE RUN IN DEMOVIEWER!
|
|
||||||
"""turtle example: Using TurtleScreen and RawTurtle
|
Use TurtleScreen and RawTurtle to draw on two
|
||||||
for drawing on two distinct canvases.
|
distinct canvases.
|
||||||
"""
|
"""
|
||||||
|
#The final mainloop only serves to keep the window open.
|
||||||
|
|
||||||
|
#TODO: This runs in its own two-canvas window when selected in the
|
||||||
|
#demoviewer examples menu but the text is not loaded and the previous
|
||||||
|
#example is left visible. If the ending mainloop is removed, the text
|
||||||
|
#Eis loaded, this run again in a third window, and if start is pressed,
|
||||||
|
#demoviewer raises an error because main is not found, and then freezes.
|
||||||
|
|
||||||
from turtle import TurtleScreen, RawTurtle, TK
|
from turtle import TurtleScreen, RawTurtle, TK
|
||||||
|
|
||||||
root = TK.Tk()
|
root = TK.Tk()
|
||||||
|
|
Loading…
Reference in New Issue