/usr/lib64/python3.12/turtledemo
NameSizeModeActions
__pycache__/-0755rm
bytedesign.py42480755editdlrm
chaos.py9510644editdlrm
clock.py33040755editdlrm
colormixer.py13390644editdlrm
forest.py29660755editdlrm
fractalcurves.py34730755editdlrm
lindenmayer.py24340755editdlrm
minimal_hanoi.py20510755editdlrm
nim.py65130644editdlrm
paint.py12910755editdlrm
peace.py10660755editdlrm
penrose.py33800755editdlrm
planet_and_moon.py28250755editdlrm
rosette.py13610644editdlrm
round_dance.py18040644editdlrm
sorting_animate.py50530755editdlrm
tree.py14010755editdlrm
turtle.cfg1600644editdlrm
two_canvases.py11190644editdlrm
yinyang.py8210755editdlrm
__init__.py3140644editdlrm
__main__.py153840755editdlrm
Edit: /usr/lib64/python3.12/turtledemo/bytedesign.py (4248B)
#! /usr/bin/python3.12 """ turtle-example-suite: tdemo_bytedesign.py An example adapted from the example-suite of PythonCard's turtle graphics. 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. """ from turtle import Turtle, mainloop from time import perf_counter as 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()