diff --git a/drawing.py b/drawing.py index f3ee2e9..e176d02 100644 --- a/drawing.py +++ b/drawing.py @@ -1,22 +1,28 @@ from turtle import ( - forward, - back, - left, right, - penup, - pendown, color, + goto, + pensize ) +from math import sin, cos, tau, pi -forward(100) -right(360 * 2 / 5) -forward(100) -right(360 * 2 / 5) -forward(100) -right(360 * 2 / 5) -forward(100) -right(360 * 2 / 5) -forward(100) -right(360 * 2 / 5) +def cardioid(theta, size=100): + return size * (1 - sin(theta)) +def polar_to_cartesian(coord: tuple[float, float]): + r, theta = coord + return (r * cos(theta), r * sin(theta)) + +def get_segmented_cardioid(segments = 16): + angles = [pi / 2 + i * (tau/ segments) for i in range(segments + 1)] + radii = map(cardioid, angles) + return list(map(polar_to_cartesian, zip(radii, angles))) + +segments = 50 +coords = get_segmented_cardioid(segments) +color(1, 0, 0) +pensize(5) +for i in range(segments + 1): + goto(coords[i]) +right(90) input()