13,592,750 members
Tip/Trick
alternative version

#### Stats

15.3K views
1 bookmarked
Posted 26 Oct 2012
Licenced CPOL

# Area of a Triangle in the Cartesian Coordinate System

, 27 Oct 2012
For absolute beginners in Java

## 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.

```/* Author: @TharieHimself */
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]));

/* THIS WILL ROUND OFF THE AREA TO THREE DECIMAL PLACES */
double roundOff = Math.round(area * 1000.0) / 1000.0;

if(area <= 0)
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!

## You may also be interested in...

 Pro

 View All Threads First Prev Next
 Keep it simple, sir Daniele Alberto Galliano26-Oct-12 2:39 Daniele Alberto Galliano 26-Oct-12 2:39
 I can't understand why you use !(area > 0) instead of area <= 0. Nobody is so beginner that cannot understand it Anyway, you used a formula that fits very well with distances, when working in the cartesian plan, that benefits much more from the nature of coordinates. In order to evaluate the area of any polygon in the coordinates plan the easiest approach is compute the area of all the trapezoids built by the x axis, the y elevations of each vertex and the side of the polygon. And you can cycle, too. Pseudocode: ```last:=lastIndex (last valid index of vector Points) Area:=0 for(i:=0..lastIndex-1) Area+=(Points[i].X-Points[last].X)*(Points[i].Y-Points[last].Y)/2 (this area has a sign!!!) last:=i```
 Last Visit: 31-Dec-99 18:00     Last Update: 20-Jun-18 6:24 Refresh 1