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:
Java – InputStream to Reader
Spring Webflux with Kotlin
Java Program to implement Associate Array
Guide to the ConcurrentSkipListMap
Java Program to Implement Gift Wrapping Algorithm in Two Dimensions
Spring Security and OpenID Connect
Chuyển đổi giữa các kiểu dữ liệu trong Java
Introduction to Spring Boot CLI
Java Program to Implement Skew Heap
Unsatisfied Dependency in Spring
Java Program to Check whether Undirected Graph is Connected using DFS
JPA/Hibernate Persistence Context
Implementing a Runnable vs Extending a Thread
Java Program to Describe the Representation of Graph using Adjacency List
Java Program to Implement Range Tree
Java Program to subtract two large numbers using Linked Lists
Jackson – Unmarshall to Collection/Array
Java Program to Implement SynchronosQueue API
Java Program to Generate Date Between Given Range
Java Program to Check if any Graph is Possible to be Constructed for a Given Degree Sequence
Spring MVC + Thymeleaf 3.0: New Features
Java Program to Implement Johnson’s Algorithm
Java – InputStream to Reader
Guide to the Volatile Keyword in Java
Java Switch Statement
@Before vs @BeforeClass vs @BeforeEach vs @BeforeAll
Java Program to Find Median of Elements where Elements are Stored in 2 Different Arrays
Spring Web Annotations
Java Program to Implement String Matching Using Vectors
Disable Spring Data Auto Configuration
DynamoDB in a Spring Boot Application Using Spring Data
Java Program to Implement Binomial Heap