w3resource

Python: Test if circumference of two circles intersect or overlap

Python Basic - 1: Exercise-45 with Solution

Circle Overlap Checker

There are two circles C1 with radius r1, central coordinate (x1, y1) and C2 with radius r2 and central coordinate (x2, y2)

Write a Python program to test the followings -
  • "C2 is in C1" if C2 is in C1
  • "C1 is in C2" if C1 is in C2
  • "Circumference of C1 and C2 intersect" if circumference of C1 and C2 intersect
  • "C1 and C2 do not overlap" if C1 and C2 do not overlap and
  • "Circumference of C1 and C2 will touch" if C1 and C2 touch

Input:
Input numbers (real numbers) are separated by a space.

Visual Presentation:

Python: Test if circumference of two circles intersect or overlap
Python: Test if circumference of two circles intersect or overlap
Python: Test if circumference of two circles intersect or overlap
Python: Test if circumference of two circles intersect or overlap
Python: Test if circumference of two circles intersect or overlap

Sample Solution:

Python Code:

# Import the math module
import math

# Prompt the user to input x1, y1, r1, x2, y2, r2
print("Input x1, y1, r1, x2, y2, r2:")

# Take user input and convert it to floating-point numbers
x1, y1, r1, x2, y2, r2 = [float(i) for i in input().split()]

# Calculate the distance between the centers of the two circles
d = math.sqrt((x1 - x2)**2 + (y1 - y2)**2)

# Check and print the relationship between the two circles based on their radii and distance
if d <= r1 - r2:
    print("C2 is in C1")
elif d <= r2 - r1:
    print("C1 is in C2")
elif d < r1 + r2:
    print("Circumference of C1 and C2 intersect")
elif d == r1 + r2:
    print("Circumference of C1 and C2 will touch")
else:
    print("C1 and C2 do not overlap")

Sample Output:

Input x1, y1, r1, x2, y2, r2:
 5 4 2 3 9 2
C1 and C2  do not overlap
Input x1, y1, r1, x2, y2, r2:
 5 4 3 5 10 3
Circumference of C1 and C2 will touch
Input x1, y1, r1, x2, y2, r2:
 6 4 3 10 4 2
Circumference of C1  and C2  intersect
Input x1, y1, r1, x2, y2, r2:
 5 4 3 5 4 2
C2  is in C1
Input x1, y1, r1, x2, y2, r2:
 5 4 2 5 4 3
C1  is in C2

Explanation:

Here is a breakdown of the above Python code:

  • The code imports the "math" module.
  • It prompts the user to input the coordinates and radii of two circles (x1, y1, r1, x2, y2, r2).
  • It calculates the distance (d) between the centers of the two circles using the distance formula.
  • The code checks the relationship between two circles based on their radii and distance.
  • It prints the appropriate message indicating the relationship between the circles.

Flowchart:

Flowchart: Python - Test if circumference of two circles intersect or overlap

Python Code Editor:

Have another way to solve this solution? Contribute your code (and comments) through Disqus.

Previous: Write a Python program to find the maximum sum of a contiguous subsequence from a given sequence of numbers a1, a2, a3, ... an. A subsequence of one element is also a continuous subsequence.
Next: Write a Python program to that reads a date (from 2016/1/1 to 2016/12/31) and prints the day of the date. Jan. 1, 2016, is Friday. Note that 2016 is a leap year.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Become a Patron!

Follow us on Facebook and Twitter for latest update.

It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.

https://w3resource.com/python-exercises/basic/python-basic-1-exercise-45.php