Introduction to Programming using Python 1st Edition

Published by Pearson
ISBN 10: 0132747189
ISBN 13: 978-0-13274-718-9

Chapter 9 - GUI Programming using Tkinter - Programming Exercises - Page 307: 9.20

Answer

code

Work Step by Step

# 9.20 (Geometry: inside a circle?) Write a program that draws a fixed circle centered at # (100, 60) with radius 50. Whenever the mouse is moved while the left button is # pressed, display the message indicating whether the mouse pointer is inside the # circle, as shown in Figure 9.31. from tkinter import * # Import tkinter width = 240 height = 120 class MainGUI: def __init__(self): window = Tk() # Create a window window.title("Inside the circle?") # Set a title self.canvas = Canvas(window, bg="white", width=width, height=height) self.canvas.pack() self.canvas.create_oval(100 - 50, 60 - 50, 100 + 50, 60 + 50, tags="circle") self.canvas.bind("", self.isInside) window.mainloop() # Create an event loop def isInside(self, event): self.canvas.delete("text") if isInsideCircle(100, 60, 50, event.x, event.y): self.canvas.create_text(event.x, event.y - 5, text="Mouse pointer is in the circle", tags="text") else: self.canvas.create_text(event.x, event.y - 5, text="Mouse pointer is not in the circle", tags="text") def isInsideCircle(xCenter, yCenter, radius, x, y): return distance(xCenter, yCenter, x, y) <= radius def distance(xCenter, yCenter, x, y): return ((xCenter - x) * (xCenter - x) + (yCenter - y) * (yCenter - y)) ** 0.5; MainGUI()
Update this answer!

You can help us out by revising, improving and updating this answer.

Update this answer

After you claim an answer you’ll have 24 hours to send in a draft. An editor will review the submission and either publish your submission or provide feedback.