Java Program to Compute the Area of a Triangle Using Determinants

This is a Java Program to find the area of a triangle using determinant method.
Formula for the area of a triangle using determinants

 

            |x1 y1 1|
Area = ±1/2 |x2 y2 1|
            |x3 y3 1|

The plus/minus in this case is meant to take whichever sign is needed so the answer is positive (non-negative). Do not say the area is both positive and negative.

Here is the source code of the Java Program to Compute the Area of a Triangle Using Determinants. 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 find the area of triangle using method of determinants
import java.util.Random;
 
public class Area_Triangle_Determinants
{
    public static double determinant(double A[][], int N)
    {
        double det = 0;
        if (N == 1)
        {
            det = A[0][0];
        } else if (N == 2)
        {
            det = A[0][0] * A[1][1] - A[1][0] * A[0][1];
        } else
        {
            det = 0;
            for (int j1 = 0; j1 < N; j1++)
            {
                double[][] m = new double[N - 1][];
                for (int k = 0; k < (N - 1); k++)
                {
                    m[k] = new double[N - 1];
                }
                for (int i = 1; i < N; i++)
                {
                    int j2 = 0;
                    for (int j = 0; j < N; j++)
                    {
                        if (j == j1)
                            continue;
                        m[i - 1][j2] = A[i][j];
                        j2++;
                    }
                }
                det += Math.pow(-1.0, 1.0 + j1 + 1.0) * A[0][j1]
                        * determinant(m, N - 1);
            }
        }
        return det;
    }
 
    public static void main(String args[])
    {
        Random random = new Random();
        int x1, x2, x3, y1, y2, y3;
        x1 = random.nextInt(10);
        x2 = random.nextInt(10);
        x3 = random.nextInt(10);
        y1 = random.nextInt(10);
        y2 = random.nextInt(10);
        y3 = random.nextInt(10);
 
        double[][] mat = new double[3][3];
        mat[0][0] = x1;
        mat[0][1] = y1;
        mat[0][2] = 1;
        mat[1][0] = x2;
        mat[1][1] = y2;
        mat[1][2] = 1;
        mat[2][0] = x3;
        mat[2][1] = y3;
        mat[2][2] = 1;
 
        System.out
                .println("The matrix formed by the coordinates of the triangle is: ");
        for (int i = 0; i < 3; i++)
        {
            for (int j = 0; j < 3; j++)
                System.out.print(mat[i][j] + " ");
            System.out.println();
        }
 
        double det = determinant(mat, 3) * 0.5;
        if (det < 0)
            System.out.println("The Area of the triangle formed by (" + x1
                    + "," + y1 + "), (" + x2 + "," + y2 + "), (" + x3 + ","
                    + y3 + ") = " + (det * -1));
        else
            System.out.println("The Area of the triangle formed by (" + x1
                    + "," + y1 + "), (" + x2 + "," + y2 + "), (" + x3 + ","
                    + y3 + ") = " + det);
    }
}

Output:

$ javac Area_Triangle_Determinants.java
$ java Area_Triangle_Determinants
 
The matrix formed by the coordinates of the triangle is: 
3.0 4.0 1.0 
6.0 4.0 1.0 
3.0 9.0 1.0 
The Area of the triangle formed by (3,4), (6,4), (3,9) = 7.5

Related posts:

Command-Line Arguments in Java
Call Methods at Runtime Using Java Reflection
Java Program to Perform Sorting Using B-Tree
Spring Boot - Sending Email
Spring REST API + OAuth2 + Angular (using the Spring Security OAuth legacy stack)
Integer Constant Pool trong Java
Creating a Custom Starter with Spring Boot
Java Program to Generate All Possible Combinations of a Given List of Numbers
Java Program to Implement Slicker Algorithm that avoids Triangulation to Find Area of a Polygon
Java Program to Perform Searching Using Self-Organizing Lists
Java Program to Check Cycle in a Graph using Graph traversal
Logout in an OAuth Secured Application
Guide to @ConfigurationProperties in Spring Boot
Java Program to Check whether Graph is Biconnected
Java Program to Describe the Representation of Graph using Adjacency Matrix
Intro to the Jackson ObjectMapper
Java Program to Check whether Directed Graph is Connected using BFS
Form Validation with AngularJS and Spring MVC
A Guide to LinkedHashMap in Java
How to Get a Name of a Method Being Executed?
A Guide to JUnit 5 Extensions
ClassNotFoundException vs NoClassDefFoundError
Wrapper Classes in Java
Hướng dẫn Java Design Pattern – Adapter
Spring WebClient vs. RestTemplate
Java Program to Implement Gauss Jordan Elimination
Java Program to Perform Deletion in a BST
Converting Java Date to OffsetDateTime
Java Program to Perform Polygon Containment Test
Spring Security Logout
Giới thiệu về Stream API trong Java 8
Java Program to Generate All Subsets of a Given Set in the Lexico Graphic Order