This is a Java Program to Implement Shoelace Algorithm. The shoelace formula, or shoelace algorithm, is a mathematical algorithm to determine the area of a simple polygon whose vertices are described by ordered pairs in the plane
Here is the source code of the Java Program to Implement Shoelace Algorithm. The Java program is successfully compiled and run on a Windows system. The program output is also shown below.
/**
** Java Program to Implement Shoelace Algorithm
**/
import java.util.Scanner;
/** Class Shoelace **/
public class Shoelace
{
/** Function to calculate area **/
public double area(int[][] arr)
{
int n = arr.length;
/** copy initial point to last row **/
arr[n - 1][0] = arr[0][0];
arr[n - 1][1] = arr[0][1];
double det = 0.0;
/** add product of x coordinate of ith point with y coordinate of (i + 1)th point **/
for (int i = 0; i < n - 1; i++)
det += (double)(arr[i][0] * arr[i + 1][1]);
/** subtract product of y coordinate of ith point with x coordinate of (i + 1)th point **/
for (int i = 0; i < n - 1; i++)
det -= (double)(arr[i][1] * arr[i + 1][0]);
/** find absolute value and divide by 2 **/
det = Math.abs(det);
det /= 2;
return det;
}
/** Main function **/
public static void main (String[] args)
{
Scanner scan = new Scanner(System.in);
System.out.println("Shoelace Algorithm Test\n");
/** Make an object of Shoelace class **/
Shoelace s = new Shoelace();
/** Accept number of points **/
System.out.println("\nEnter number of points");
int n = scan.nextInt();
int[][] arr = new int[n + 1][2];
System.out.println("Enter "+ n +" x, y coordinates");
for (int i = 0; i < n; i++)
{
arr[i][0] = scan.nextInt();
arr[i][1] = scan.nextInt();
}
double area = s.area(arr);
System.out.println("\nArea = "+ area);
}
}
Output:
Shoelace Algorithm Test Enter number of points 5 Enter 5 x, y coordinates 3 4 5 11 12 8 9 5 5 6 Area = 30.0
Related posts:
Spring MVC and the @ModelAttribute Annotation
Spring @Primary Annotation
Filtering and Transforming Collections in Guava
Java Program to find the maximum subarray sum using Binary Search approach
Java Deep Learning Essentials - Yusuke Sugomori
Guide to the ConcurrentSkipListMap
Java program to Implement Tree Set
Default Password Encoder in Spring Security 5
Returning Custom Status Codes from Spring Controllers
Spring Boot Change Context Path
Object Type Casting in Java
ClassNotFoundException vs NoClassDefFoundError
Convert Hex to ASCII in Java
Java Program to Represent Graph Using Adjacency Matrix
Java Program to Perform Left Rotation on a Binary Search Tree
Spring Boot - Sending Email
Thao tác với tập tin và thư mục trong Java
Java Program to Implement Bellman-Ford Algorithm
Java Program to Check the Connectivity of Graph Using BFS
Deploy a Spring Boot App to Azure
A Guide to the Java ExecutorService
Java Program to Implement Merge Sort on n Numbers Without tail-recursion
Java Program to Implement Dijkstra’s Algorithm using Set
Java Program to Implement Floyd-Warshall Algorithm
Constructor Injection in Spring with Lombok
Java Program to Create the Prufer Code for a Tree
Java Program to Implement Bubble Sort
Java Program to Implement Double Order Traversal of a Binary Tree
Adding a Newline Character to a String in Java
Java Program to Implement EnumMap API
Refactoring Design Pattern với tính năng mới trong Java 8
Java Program to Implement Shell Sort