X Tutup
"""This module contains a code example related to Think Python, 2nd Edition by Allen Downey http://thinkpython2.com Copyright 2015 Allen Downey License: http://creativecommons.org/licenses/by/4.0/ """ from __future__ import print_function, division import copy from Point1 import Point, Rectangle, print_point from Point1_soln import distance_between_points class Circle: """Represents a circle. Attributes: center, radius """ def point_in_circle(point, circle): """Checks whether a point lies inside a circle (or on the boundary). point: Point object circle: Circle object """ d = distance_between_points(point, circle.center) print(d) return d <= circle.radius def rect_in_circle(rect, circle): """Checks whether the corners of a rect fall in/on a circle. rect: Rectangle object circle: Circle object """ p = copy.copy(rect.corner) print_point(p) if not point_in_circle(p, circle): return False p.x += rect.width print_point(p) if not point_in_circle(p, circle): return False p.y -= rect.height print_point(p) if not point_in_circle(p, circle): return False p.x -= rect.width print_point(p) if not point_in_circle(p, circle): return False return True def rect_circle_overlap(rect, circle): """Checks whether any corners of a rect fall in/on a circle. rect: Rectangle object circle: Circle object """ p = copy.copy(rect.corner) print_point(p) if point_in_circle(p, circle): return True p.x += rect.width print_point(p) if point_in_circle(p, circle): return True p.y -= rect.height print_point(p) if point_in_circle(p, circle): return True p.x -= rect.width print_point(p) if point_in_circle(p, circle): return True return False def main(): box = Rectangle() box.width = 100.0 box.height = 200.0 box.corner = Point() box.corner.x = 50.0 box.corner.y = 50.0 print(box.corner.x) print(box.corner.y) circle = Circle circle.center = Point() circle.center.x = 150.0 circle.center.y = 100.0 circle.radius = 75.0 print(circle.center.x) print(circle.center.y) print(circle.radius) print(point_in_circle(box.corner, circle)) print(rect_in_circle(box, circle)) print(rect_circle_overlap(box, circle)) if __name__ == '__main__': main()
X Tutup