Java Program to Check if a Point d lies Inside or Outside a Circle Defined by Points a, b, c in a Plane

This is a Java Program to check whether a point lies inside, outside or on the circle. For any point t (xt, yt) on the plane, its position with respect to the circle defined by 3 points (x1, y1) , (x2, y2), (x3, y3).
s = (x-xt)^2 + (y-yt)^2 – r*r
If s < 0, t lies inside the circle; if s > 0, t lies outside the circle; if s = 0, t lies on the circle.

Here is the source code of the Java Program to Check if a Point d lies Inside or Outside a Circle Defined by Points a, b, c in a Plane. The Java program is successfully compiled and run on a Windows system. The program output is also shown below.

//This is a java program to check whether point d lies inside or outside the circle defined by a, b, c points
import java.util.Random;
import java.util.Scanner;
 
public class Position_Point_WRT_Circle
{
    public static void main(String args[])
    {
        Random random = new Random();
 
        int x1, y1, x2, y2, x3, y3;
        double m1, m2, c1, c2, r;
 
        x1 = random.nextInt(10);
        y1 = random.nextInt(10);
        x2 = random.nextInt(10);
        y2 = random.nextInt(10);
        x3 = random.nextInt(10);
        y3 = random.nextInt(10);
 
        m1 = (y1 - y2) / (x1 - x2);
        m2 = (y3 - y2) / (x3 - x2);
 
        c1 = ((m1 * m2 * (y3 - y1)) + (m1 * (x2 + x3)) - (m2 * (x1 + x2)))
                / (2 * (m1 - m2));
        c2 = ((((x1 + x2) / 2) - c1) / (-1 * m1)) + ((y1 + y2) / 2);
        r = Math.sqrt(((x3 - c1) * (x3 - c1)) + ((y3 - c2) * (y3 - c2)));
 
        System.out.println("The points on the circle are: (" + x1 + ", " + y1
                + "), (" + x2 + ", " + y2 + "), (" + x3 + ", " + y3 + ")");
        System.out.println("The center of the circle is (" + c1 + ", " + c2
                + ") and radius is " + r);
 
        System.out.println("Enter the point : <x>,<y>");
        Scanner scan = new Scanner(System.in);
        int x, y;
        x = scan.nextInt();
        y = scan.nextInt();
 
        double s = ((x - c1) * (x - c1)) + ((y - c2) * (y - c1)) - (r * r);
        if (s < 0)
            System.out.println("The point lies inside the circle");
        else if (s > 0)
            System.out.println("The point lies outside the circle");
        else
            System.out.println("The point lies on the circle");
        scan.close();
    }
}

Output:

$ javac Position_Point_WRT_Circle.java
$ java Position_Point_WRT_Circle
 
The points on the circle are: (5, 9), (4, 7), (2, 0)
The center of the circle is (34.5, 23.25) and radius is 39.960136386153636
Enter the point : <x>,<y>
3 5
The point lies inside the circle
 
The points on the circle are: (0, 1), (2, 3), (5, 4)
The center of the circle is (3.5, 4.5) and radius is 1.5811388300841898
Enter the point : <x>,<y>
1 2
The point lies outside the circle

Related posts:

Java Program to Compute DFT Coefficients Directly
Java Program to Implement Hopcroft Algorithm
Java Program to Implement Pagoda
Java Program to Generate All Subsets of a Given Set in the Lexico Graphic Order
Apache Commons Collections OrderedMap
Java Program to Construct an Expression Tree for an Infix Expression
Java Program to Find the Connected Components of an UnDirected Graph
Hướng dẫn sử dụng luồng vào ra ký tự trong Java
Changing Annotation Parameters At Runtime
Control the Session with Spring Security
Java Program to Implement Meldable Heap
Wiring in Spring: @Autowired, @Resource and @Inject
Guide to PriorityBlockingQueue in Java
Java Program to Use Boruvka’s Algorithm to Find the Minimum Spanning Tree
Auditing with JPA, Hibernate, and Spring Data JPA
Java Program to Generate All Pairs of Subsets Whose Union Make the Set
The SpringJUnitConfig and SpringJUnitWebConfig Annotations in Spring 5
Primitive Type Streams in Java 8
Java Program to Implement the One Time Pad Algorithm
Java Program to Compute Discrete Fourier Transform Using the Fast Fourier Transform Approach
The Dining Philosophers Problem in Java
Quick Guide to @RestClientTest in Spring Boot
Java Program to Implement Dijkstra’s Algorithm using Queue
How to Count Duplicate Elements in Arraylist
Exploring the Spring Boot TestRestTemplate
Merging Two Maps with Java 8
Java Program to Implement Sorted Doubly Linked List
Java Program to Search for an Element in a Binary Search Tree
Java Program to Implement Caesar Cypher
A Quick Guide to Spring Cloud Consul
Spring Boot - Google OAuth2 Sign-In
Spring Boot Integration Testing with Embedded MongoDB