Introduction
This is a simple Java class with a method to calculate the area, given the coordinates of the three nodes of the triangle, and a main method to invoke the calcArea method.
Background
This is a just a class I've implemented in order to solve a problem in CodeCheff.com [ http://www.codechef.com/problems/NICEQUAD ]
since the other parts of the program are specific only to that problem, I thought to post this generic part -calculating the area of a triangle in a cartesian coordinate system- in Code Project. This is for absolute beginners to help themselves with:
- Getting input from the user
- Working with 2D arrays
- Using methods in Math class
- Rounding off a decimal number
- and anything new according to your level as a programmer...
Using the code
Nothing complex here. Just compile and run as usual.
import java.util.Scanner;
public class Triangle{
public void calcArea(){
Scanner scan = new Scanner(System.in);
int[][] coordinates = new int[3][2];
double[] sides = new double[3];
int count = 0;
for(int r=0; r<3; r++)
{
for(int c=0; c<2;c++){
count++;
System.out.print("Enter Coordinate "+count+": ");
coordinates[r][c] = scan.nextInt();
}
}
for(int i = 0; i<3; i++)
{
sides[i] = Math.sqrt((Math.pow((coordinates[i][0]- coordinates[(i + 1) % 3][0]), 2)) + Math.pow((coordinates[i][1] - coordinates[(i + 1) % 3][1]), 2));
}
double s = (sides[0]+ sides[1]+ sides[2])/2;
double area = Math.sqrt(s*(s-sides[0])*(s-sides[1])*(s-sides[2]));
double roundOff = Math.round(area * 1000.0) / 1000.0;
if(area <= 0)
System.out.println("\nYour Triangle does not exist!");
else
System.out.println("\nArea of your Triangle is: "+roundOff);
}
}
Points of Interest
A formula for calculating the area of a triangle when all sides are known is attributed to two famous mathematicians; Heron of Alexandria and Archimedes!