commit b59801ab8f8150b882897c7b29e0b2d420d693fa Author: Dmitry Fedotov Date: Wed Mar 19 20:55:19 2025 +0300 init diff --git a/drawing_recursively.py b/drawing_recursively.py new file mode 100755 index 0000000..7c02fb4 --- /dev/null +++ b/drawing_recursively.py @@ -0,0 +1,37 @@ +#!/usr/bin/env python3 +from turtle import Pen + + +def draw_ornament(pen, scale=150): + if scale > 1: + for angle in range(0, 360, 90): + pen.setheading(angle) + back = pen.pos() + if scale <= 10: + pen.pd() + pen.forward(scale) + draw_ornament(pen, scale // 2) + pen.pu() + pen.setpos(back) + +def setup_pen(): + pen = Pen() + pen.ht() + pen.pu() + pen.speed(0) + pen.screen.setup(1000, 900) + pen.screen.title("Watch me running") + pen.screen.bgcolor("white") + pen.screen.tracer(n=10) # draws only nth frame to speed up drawing + pen.color("blue") + pen.setpos(0, 0) + return pen + +if __name__ == '__main__': + pen = setup_pen() + try: + draw_ornament(pen) + except KeyboardInterrupt: + exit() + input('All done!\nPress Enter to quit') + exit() diff --git a/turtle_tree.py b/turtle_tree.py new file mode 100755 index 0000000..dc1b109 --- /dev/null +++ b/turtle_tree.py @@ -0,0 +1,59 @@ +#!/usr/bin/env python3 +from turtle import Pen + + +def draw_tree(pen, scale=50): + pen.color("brown") + for angle in range(int(pen.heading() - 80), int(pen.heading() + 60), 51): + pen.setheading(angle) + back = pen.pos() + pen.pd() + for _ in range(5): + pen.forward(scale) + pen.left(10) + if scale >= 10: + draw_tree(pen, scale // 2) + elif scale < 10: + draw_leaf(pen, scale) + else: + pass + pen.pu() + pen.setpos(back) + +def draw_leaf(pen, scale=5): + back = pen.pos() + pen.color("green") + pen.pd() + factor_width = 1 + factor_length = scale + for _ in range(20): + pen.forward(factor_length) + pen.begin_fill() + pen.circle(scale * factor_width) + pen.circle(-scale * factor_width) + pen.end_fill() + factor_width *= 0.8 + factor_length *= 0.7 + pen.setpos(back) + pen.color("brown") + + + +def setup_pen(): + pen = Pen() + pen.ht() + pen.pu() + pen.setheading(90) + pen.speed(0) + pen.screen.setup(1000, 550) + pen.screen.title("Beautiful tree :)") + pen.screen.bgcolor("white") + pen.setpos(0, -240) + return pen + +if __name__ == '__main__': + pen = setup_pen() +## draw_leaf(pen, 50) + draw_tree(pen) + input('All done!\nPress Enter to quit') + exit() diff --git a/umbrella.py b/umbrella.py new file mode 100755 index 0000000..560646b --- /dev/null +++ b/umbrella.py @@ -0,0 +1,37 @@ +#!/usr/bin/env python3 +from turtle import Pen + + +def draw_ornament(pen, scale=300): + if scale > 3: + pen.pd() + pen.forward(scale) + back = pen.pos() + for angle in range(int(pen.heading() - 75), int(pen.heading() + 76), 15): + pen.setheading(angle) + pen.forward(scale // 3) + draw_ornament(pen, scale // 5) + pen.setpos(back) + +def setup_pen(): + pen = Pen() + pen.ht() + pen.pu() + pen.speed(0) + pen.screen.setup(1000, 900) + pen.screen.title("Watch me running") + pen.screen.bgcolor("white") + pen.screen.tracer(n=10) # draws only nth frame to speed up drawing + pen.color("blue") + pen.setpos(0, -450) + pen.setheading(90) + return pen + +if __name__ == '__main__': + pen = setup_pen() + try: + draw_ornament(pen) + except KeyboardInterrupt: + exit() + input('All done!\nPress Enter to quit') + exit()