Wrote a program that draws a hand and then draws balloons with various sizes and angles from two lists.

This commit is contained in:
kated
2026-03-11 10:51:57 -04:00
parent a1a9776d36
commit 9be9fbe4dd
6 changed files with 293 additions and 0 deletions

1
.envrc Normal file
View File

@@ -0,0 +1 @@
source .venv/bin/activate

View File

@@ -5,3 +5,78 @@
# (Briefly describe what this program does.) # (Briefly describe what this program does.)
from turtle import * from turtle import *
from superturtle.image import save_svg
def draw_hand(offset):
penup()
forward(-offset)
pendown()
for i in range(2):
forward(20)
left(90)
forward(12.5)
left(90)
left(90)
penup()
forward(12.5)
for i in range(3):
right(90)
forward(5)
right(90)
pendown()
forward(7.5)
right(180)
penup()
forward(7.5)
right(90)
forward(5)
left(90)
pendown()
for i in range(2):
forward(5)
left(90)
forward(10)
left(90)
right(90)
penup()
def draw_balloon(radius, angle, offset):
pendown()
x,y = pos()
goto(x+50+angle, y+75-angle*2)
right(90)
circle(radius)
penup()
left(90)
goto(-offset+20,10)
def draw_my_drawing():
#program
offset = 200
draw_hand(offset)
size = [90, 82, 60, 45, 28, 71, 136, 36, 63, 170, 154, 30, 70]
angle = [20, 60, 40, 80, 30, 100, 50, 10, 3, 136, 15, 1, 180]
for i1, i2 in zip(size, angle):
draw_balloon(i1, i2, offset)
input()
width, height = 816, 1056
with save_svg(width, height, "drawing.svg"):
draw_my_drawing()

2
drawing.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 14 KiB

82
drawing_test.py Normal file
View File

@@ -0,0 +1,82 @@
# drawing.py
# ----------
# By ____(you)___________
#
# (Briefly describe what this program does.)
from turtle import *
from superturtle.image import save_svg
def draw_hand():
penup()
left(180)
forward(200)
left(90)
forward(150)
left(90)
pendown()
for i in range(2):
forward(20)
left(90)
forward(12.5)
left(90)
left(90)
penup()
forward(12.5)
for i in range(3):
right(90)
forward(5)
right(90)
pendown()
forward(7.5)
right(180)
penup()
forward(7.5)
right(90)
forward(5)
left(90)
pendown()
for i in range(2):
forward(5)
left(90)
forward(10)
left(90)
right(90)
penup()
def draw_balloon(radius):
pendown()
forward(150 + radius)
for i in range(10):
left(9)
forward(2)
forward(100 )
left(90)
circle(-radius)
penup()
goto(-184,-137.5)
right(180)
def draw_my_drawing():
#program
draw_hand()
size = [10, 20, 40, 80, 160]
for i in size:
draw_balloon(i)
input()
#width, height = 816, 1056
#with save_svg(width, height, "drawing.svg"):
draw_my_drawing()

82
drawing_test_2.py Normal file
View File

@@ -0,0 +1,82 @@
# drawing.py
# ----------
# By ____(you)___________
#
# (Briefly describe what this program does.)
from turtle import *
from superturtle.image import save_svg
def draw_hand(offset):
penup()
forward(-offset)
pendown()
for i in range(2):
forward(20)
left(90)
forward(12.5)
left(90)
left(90)
penup()
forward(12.5)
for i in range(3):
right(90)
forward(5)
right(90)
pendown()
forward(7.5)
right(180)
penup()
forward(7.5)
right(90)
forward(5)
left(90)
pendown()
for i in range(2):
forward(5)
left(90)
forward(10)
left(90)
right(90)
penup()
def draw_balloon(radius, angle, offset):
pendown()
x,y = pos()
goto(x+50+angle, y+75-angle*2)
right(90)
circle(radius)
penup()
left(90)
goto(-offset+20,10)
def draw_my_drawing():
#program
offset = 200
draw_hand(offset)
size = [90, 82, 60, 45, 28, 71, 136, 36, 63, 170, 154, 30, 70]
angle = [20, 60, 40, 80, 30, 100, 50, 10, 3, 136, 15, 1, 180]
for i1, i2 in zip(size, angle):
draw_balloon(i1, i2, offset)
input()
width, height = 816, 1056
with save_svg(width, height, "drawing.svg"):
draw_my_drawing()

51
poetry.lock generated Normal file
View File

@@ -0,0 +1,51 @@
# This file is automatically @generated by Poetry 2.3.1 and should not be changed by hand.
[[package]]
name = "superturtle"
version = "1.2.0"
description = "Extensions to Python's turtle"
optional = false
python-versions = "<4.0,>=3.10"
groups = ["main"]
files = [
{file = "superturtle-1.2.0-py3-none-any.whl", hash = "sha256:acc183da60a270177fcfbe6e70b41d17d7cd7f81fd5f2aea8d0f1defe9d6d5c7"},
{file = "superturtle-1.2.0.tar.gz", hash = "sha256:df28bf8888cfed4c0645dafc07ecac996a30e5efd32c2c2d63264e0a965b0aa0"},
]
[package.dependencies]
svg-turtle = ">=1.0.0,<2.0.0"
[[package]]
name = "svg-turtle"
version = "1.1.0"
description = "Use the Python turtle to write SVG files. With optional IPython integration."
optional = false
python-versions = "*"
groups = ["main"]
files = [
{file = "svg_turtle-1.1.0-py3-none-any.whl", hash = "sha256:912b3032383b8a5020b63a1930523d912d0142a3526e579418ca27dbead1c7d6"},
{file = "svg_turtle-1.1.0.tar.gz", hash = "sha256:21caebfa176e2cb2fe8e25d7c459d7672933c60e91133c2e4d97798f0412aa0a"},
]
[package.dependencies]
svgwrite = "*"
[package.extras]
ipython = ["ipython"]
[[package]]
name = "svgwrite"
version = "1.4.3"
description = "A Python library to create SVG drawings."
optional = false
python-versions = ">=3.6"
groups = ["main"]
files = [
{file = "svgwrite-1.4.3-py3-none-any.whl", hash = "sha256:bb6b2b5450f1edbfa597d924f9ac2dd099e625562e492021d7dd614f65f8a22d"},
{file = "svgwrite-1.4.3.zip", hash = "sha256:a8fbdfd4443302a6619a7f76bc937fc683daf2628d9b737c891ec08b8ce524c3"},
]
[metadata]
lock-version = "2.1"
python-versions = ">=3.10,<4.0"
content-hash = "b5afffe1b68ffec30b452cc1ebd5b882e920f126f53332188ec7303cb592fa22"