diff options
Diffstat (limited to 'Demo/turtle/tdemo_bytedesign.py')
-rw-r--r-- | Demo/turtle/tdemo_bytedesign.py | 162 |
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() |