# connect the dots program. # responds to clicks by connecting the dots. # when same point is clicked again, make and fill a polygon. import math, time import zellegraphics as zg TOLERANCE = 5 def distance(point1, point2): dx = point1.getX() - point2.getX() dy = point1.getY() - point2.getY() return math.sqrt(dx **2 + dy **2) def drawPoint (p): c = zg.Circle(p, TOLERANCE) c.setFill('magenta') c.draw(win) def tests(): p1 = zg.Point(1,7) p2 = zg.Point(4, 11) p3 = zg.Point(-1, 23) print('Distances (should be 5 and 13): ', distance(p1, p2), distance (p2, p3)) #tests() win = zg.GraphWin() pointList = []; while True: newPoint = win.getMouse() if len(pointList) > 1 and distance(newPoint, pointList[0]) <= TOLERANCE: break drawPoint(newPoint); pointList.append(newPoint) if len(pointList) > 1: zg.Line(pointList[-2], pointList[-1]).draw(win) poly = zg.Polygon(pointList) poly.setFill('green') poly.draw(win) win.getMouse() win.close()