summaryrefslogtreecommitdiff
path: root/Demo/turtle/tdemo_bytedesign.py
diff options
context:
space:
mode:
Diffstat (limited to 'Demo/turtle/tdemo_bytedesign.py')
-rw-r--r--Demo/turtle/tdemo_bytedesign.py162
1 files changed, 0 insertions, 162 deletions
diff --git a/Demo/turtle/tdemo_bytedesign.py b/Demo/turtle/tdemo_bytedesign.py
deleted file mode 100644
index 96118b32df..0000000000
--- a/Demo/turtle/tdemo_bytedesign.py
+++ /dev/null
@@ -1,162 +0,0 @@
-#!/usr/bin/env python3
-""" turtle-example-suite:
-
- tdemo_bytedesign.py
-
-An example adapted from the example-suite
-of PythonCard's turtle graphcis.
-
-It's based on an article in BYTE magazine
-Problem Solving with Logo: Using Turtle
-Graphics to Redraw a Design
-November 1982, p. 118 - 134
-
--------------------------------------------
-
-Due to the statement
-
-t.delay(0)
-
-in line 152, which sets the animation delay
-to 0, this animation runs in "line per line"
-mode as fast as possible.
-"""
-
-import math
-from turtle import Turtle, mainloop
-from time import clock
-
-# wrapper for any additional drawing routines
-# that need to know about each other
-class Designer(Turtle):
-
- def design(self, homePos, scale):
- self.up()
- for i in range(5):
- self.forward(64.65 * scale)
- self.down()
- self.wheel(self.position(), scale)
- self.up()
- self.backward(64.65 * scale)
- self.right(72)
- self.up()
- self.goto(homePos)
- self.right(36)
- self.forward(24.5 * scale)
- self.right(198)
- self.down()
- self.centerpiece(46 * scale, 143.4, scale)
- self.getscreen().tracer(True)
-
- def wheel(self, initpos, scale):
- self.right(54)
- for i in range(4):
- self.pentpiece(initpos, scale)
- self.down()
- self.left(36)
- for i in range(5):
- self.tripiece(initpos, scale)
- self.left(36)
- for i in range(5):
- self.down()
- self.right(72)
- self.forward(28 * scale)
- self.up()
- self.backward(28 * scale)
- self.left(54)
- self.getscreen().update()
-
- def tripiece(self, initpos, scale):
- oldh = self.heading()
- self.down()
- self.backward(2.5 * scale)
- self.tripolyr(31.5 * scale, scale)
- self.up()
- self.goto(initpos)
- self.setheading(oldh)
- self.down()
- self.backward(2.5 * scale)
- self.tripolyl(31.5 * scale, scale)
- self.up()
- self.goto(initpos)
- self.setheading(oldh)
- self.left(72)
- self.getscreen().update()
-
- def pentpiece(self, initpos, scale):
- oldh = self.heading()
- self.up()
- self.forward(29 * scale)
- self.down()
- for i in range(5):
- self.forward(18 * scale)
- self.right(72)
- self.pentr(18 * scale, 75, scale)
- self.up()
- self.goto(initpos)
- self.setheading(oldh)
- self.forward(29 * scale)
- self.down()
- for i in range(5):
- self.forward(18 * scale)
- self.right(72)
- self.pentl(18 * scale, 75, scale)
- self.up()
- self.goto(initpos)
- self.setheading(oldh)
- self.left(72)
- self.getscreen().update()
-
- def pentl(self, side, ang, scale):
- if side < (2 * scale): return
- self.forward(side)
- self.left(ang)
- self.pentl(side - (.38 * scale), ang, scale)
-
- def pentr(self, side, ang, scale):
- if side < (2 * scale): return
- self.forward(side)
- self.right(ang)
- self.pentr(side - (.38 * scale), ang, scale)
-
- def tripolyr(self, side, scale):
- if side < (4 * scale): return
- self.forward(side)
- self.right(111)
- self.forward(side / 1.78)
- self.right(111)
- self.forward(side / 1.3)
- self.right(146)
- self.tripolyr(side * .75, scale)
-
- def tripolyl(self, side, scale):
- if side < (4 * scale): return
- self.forward(side)
- self.left(111)
- self.forward(side / 1.78)
- self.left(111)
- self.forward(side / 1.3)
- self.left(146)
- self.tripolyl(side * .75, scale)
-
- def centerpiece(self, s, a, scale):
- self.forward(s); self.left(a)
- if s < (7.5 * scale):
- return
- self.centerpiece(s - (1.2 * scale), a, scale)
-
-def main():
- t = Designer()
- t.speed(0)
- t.hideturtle()
- t.getscreen().delay(0)
- t.getscreen().tracer(0)
- at = clock()
- t.design(t.position(), 2)
- et = clock()
- return "runtime: %.2f sec." % (et-at)
-
-if __name__ == '__main__':
- msg = main()
- print(msg)
- mainloop()