- Trending Categories
- Data Structure
- Networking
- RDBMS
- Operating System
- Java
- MS Excel
- iOS
- HTML
- CSS
- Android
- Python
- C Programming
- C++
- C#
- MongoDB
- MySQL
- Javascript
- PHP
- Physics
- Chemistry
- Biology
- Mathematics
- English
- Economics
- Psychology
- Social Studies
- Fashion Studies
- Legal Studies

- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who

# How to Know whether a Line Touches, Intersects or Lie Outside a Circle in Java?

A circle is a closed shape formed by tracing a point that moves in a plane such that its distance from a given point is constant. A line is a straight one-dimensional figure that does not have a thickness, and it extends endlessly in both directions.

In this article we will check if a given line touches a circle or intersects it using java.

We will be given with the centre coordinates and radius of a circle along with equation of the line. We need to check if the given line collides with the circle or not and hence three possible situation arises as mentioned below −

If a line is outside the circle.

If a line touches the circle.

If a line intersects the circle.

Now to check the above conditions we will compare the perpendicular distance between center of circle and line with the radius of the circle and name it as “d”.

Now,

If d > r, then line lie outside the circle.

If d = r, then line touches the circle.

If d < r, then line intersect the circle.

We know, equation of the line a*x + b*y + c = 0

“d” can be found using the formula −

$$\mathrm{d=\frac{\rvert\:ax_0\:+\:by_0\:+\:c\:\lvert}{\sqrt{a^{2}\:+\:b^{2}}}}$$

Let’s start!

## To show you some instances

### Instance-1

Given inputs for the “d” are −

Radius = 8, center = (0,0), a = 2, b = 5, c = 3.

After finding the value of “d” the result will be −

line lies outside the circle.

### Instance-2

Given inputs for the “d” are −

Radius = 2, center = (0,0), a = 2, b = 1, c = 8.

After finding the value of “d” the result will be −

line lies outside the circle .

### Algorithm

**Step-1**− Declare and initialize the variables.**Step-2**− Find the distance between center 1 and center 2 of the circle.**Step-3**− Check for the five conditions of distance.**Step-4**− Print the result.

## Multiple Approaches

We have provided the solution in different approaches.

By Using Static Inputs

By Using User Defined Method

Let’s see the program along with its output one by one.

## Approach-1: By Using Static Input

In this approach, value of radius, center, a, b and c will be assigned to find “d”. Then as per the algorithm we will find if line touches, intersects or lie outside the circle.

### Example

import java.io.*; public class Main { //main method public static void main (String[] args){ //Declaring variables int radius = 2; int a = 2, b = 1, c = 8; //Finding the distance of line from center of the circle double dist = (Math.abs(a * 0 + b * 0 + c))/Math.sqrt(a * a + b * b); // Check for different condition if (radius == dist) //print if line touches the circle System.out.println ( "line touches the circle" ); else if (radius > dist) //print if line intersects the circle System.out.println( "line intersects the circle") ; else //print if line lie outside the circle System.out.println( "line lie outside the circle") ; } }

### Output

line lie outside the circle

## Approach-2: By Using User Defined Method

In this approach, value of radius, center, a, b and c will be assigned to find “d”. Then call a user defined method by passing the given values and as per the algorithm we will find if line touches, intersects or lie outside the circle.

### Example

import java.io.*; public class Main { //main method public static void main (String[] args){ //Declaring variables int radius = 8; int a = 2, b = 5, c = 3; //calling user defined method func(a, b, c, radius); } //user defined method static void func(int a, int b, int c, int radius){ //Finding the distance of line from center of the circle double dist = (Math.abs(a * 0 + b * 0 + c))/Math.sqrt(a * a + b * b); // Check for different condition if (radius == dist) //print if line touches the circle System.out.println ( "line touches the circle" ); else if (radius > dist) //print if line intersects the circle System.out.println( "line intersects the circle") ; else //print if line lie outside the circle System.out.println( "line lie outside the circle") ; } }

### Output

line intersects the circle

In this article, we explored different approaches to check if a line touches, intersects or lies outside a circle by using Java programming language.