Open In App

Shortest distance between a point and a circle

Given a circle with a given radius has its centre at a particular position in the coordinate plane. In the coordinate plane, another point is given. The task is to find the shortest distance between the point and the circle.
Examples: 
 

Input: x1 = 4, y1 = 6, x2 = 35, y2 = 42, r = 5 
Output: 42.5079

Input: x1 = 0, y1 = 0, x2 = 5, y2 = 12, r = 3
Output: 10


 




Approach:
 




 


 


 


 


 


 


 


Below is the implementation of the above approach:
 

// C++ program to find
// the Shortest distance
// between a point and
// a circle
#include <bits/stdc++.h>
using namespace std;
 
// Function to find the shortest distance
void dist(double x1, double y1, double x2, double y2, double r)
{
    cout << "The shortest distance "
         << "between a point and a circle is "
         << sqrt((pow((x2 - x1), 2))
                 + (pow((y2 - y1), 2)))
                - r
         << endl;
}
 
// Driver code
int main()
{
    double x1 = 4, y1 = 6,
           x2 = 35, y2 = 42, r = 5;
    dist(x1, y1, x2, y2, r);
    return 0;
}

                    
// Java program to find
// the Shortest distance
// between a point and
// a circle
class GFG
{
 
// Function to find the shortest distance
static void dist(double x1, double y1, double x2,
                                double y2, double r)
{
    System.out.println("The shortest distance "
            + "between a point and a circle is "
            + (Math.sqrt((Math.pow((x2 - x1), 2))
                    + (Math.pow((y2 - y1), 2)))
            - r));
}
 
// Driver code
public static void main(String[] args)
{
    double x1 = 4, y1 = 6,
            x2 = 35, y2 = 42, r = 5;
    dist(x1, y1, x2, y2, r);
}
}
 
/* This code contributed by PrinciRaj1992 */

                    
# Python program to find
# the Shortest distance
# between a point and
# a circle
  
# Function to find the shortest distance
def dist(x1, y1, x2, y2, r):
    print("The shortest distance between a point and a circle is "
    ,((((x2 - x1)** 2) + ((y2 - y1)** 2))**(1/2)) - r);
 
  
# Driver code
x1 = 4;
y1 = 6;
x2 = 35;
y2 = 42;
r = 5;
dist(x1, y1, x2, y2, r);
 
 
# This code has been contributed by 29AjayKumar

                    
// C# program to find the Shortest distance
// between a point and a circle
using System;
 
class GFG
{
 
// Function to find the shortest distance
static void dist(double x1, double y1, double x2,
                                double y2, double r)
{
    Console.WriteLine("The shortest distance "
            + "between a point and a circle is "
            + (Math.Sqrt((Math.Pow((x2 - x1), 2))
                    + (Math.Pow((y2 - y1), 2)))
            - r));
}
 
// Driver code
public static void Main(String[] args)
{
    double x1 = 4, y1 = 6,
            x2 = 35, y2 = 42, r = 5;
    dist(x1, y1, x2, y2, r);
}
}
 
/* This code contributed by PrinciRaj1992 */

                    
<?php
// PHP program to find
// the Shortest distance
// between a point and
// a circle
 
// Function to find the shortest distance
function dist($x1, $y1, $x2, $y2, $r)
{
    echo "The shortest distance between a point and a circle is "
                ,sqrt((pow(($x2 - $x1), 2))
                + (pow(($y2 - $y1), 2)))
                - $r ;
}
 
// Driver code
$x1 = 4;
$y1 = 6;
$x2 = 35;
$y2 = 42;
$r = 5;
dist($x1, $y1, $x2, $y2, $r);
 
// This code is contributed by AnkitRai01
 
?>

                    
<script>
 
// javascript program to find
// the Shortest distance
// between a point and
// a circle
 
// Function to find the shortest distance
function dist(x1 , y1 , x2, y2 , r)
{
    document.write("The shortest distance "
            + "between a point and a circle is "
            + (Math.sqrt((Math.pow((x2 - x1), 2))
                    + (Math.pow((y2 - y1), 2)))
            - r).toFixed(5));
}
 
// Driver code
 
 
var x1 = 4, y1 = 6,
        x2 = 35, y2 = 42, r = 5;
dist(x1, y1, x2, y2, r);
 
 
// This code contributed by Princi Singh
 
</script>

                    

Output: 
The shortest distance between a point and a circle is 42.5079

 

Time Complexity: O(1)

Auxiliary Space: O(1)


Article Tags :