w3resource

PHP Exercises: Test if circumference of two circles intersect or overlap

PHP: Exercise-58 with Solution

There are two circles C1 with radius r1, central coordinate (x1, y1) and C2 with radius r2 and central coordinate (x2, y2)
Write a PHP 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, and and "C1 and C2 do not overlap" if C1 and C2 do not overlap.

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

Sample Solution:

PHP Code:

<?php
// Read the number of test cases from standard input
$n = intval(fgets(STDIN));

// Loop through each test case
for ($i = 0; $i < $n; $i++) {
    // Read the coordinates and radii of two circles from standard input
    fscanf(STDIN, "%lf %lf %lf %lf %lf %lf", $xa, $ya, $ra, $xb, $yb, $rb);

    // Calculate the distance between the centers of the two circles
    $r = sqrt(($xb - $xa) * ($xb - $xa) + ($yb - $ya) * ($yb - $ya));

    // Check if one circle is completely inside the other
    if ($r + $ra < $rb) {
        echo "C1 is in C2\n";
        continue;
    }

    if ($r + $rb < $ra) {
        echo "C2 is in C1.\n";
        continue;
    }

    // Check if the circumferences of the circles intersect
    if ($r <= $ra + $rb) {
        echo "Circumference of C1 and C2 intersect.\n";
        continue;
    }

    // Circles do not overlap or intersect
    echo "C1 and C2 do not overlap.\n";
}

?>

Sample Input:
2
0.0 0.0 6.0 0.0 0.0 5.0
0.0 0.0 3.0 5.1 0.0 3.0

Sample Output:

C2  is in C1.
Circumference of C1  and C2  intersect.

Flowchart:

Flowchart: Test the specified Circumference of C1 and C2 intersect or overlap.

PHP Code Editor:

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

Previous: Write a PHP 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 PHP program to that reads a date (from 2004/1/1 to 2004/12/31) and prints the day of the date. Jan. 1, 2004, is Friday. Note that 2004 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://www.w3resource.com/php-exercises/php-basic-exercise-58.php