11,504,472 members (74,030 online)
Tip/Trick

# Area of a Triangle in the Cartesian Coordinate System

, 27 Oct 2012 CPOL 9K 1
 Rate this:
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!

## Share

Sri Lanka
No Biography provided

 First Prev Next
 No need to use Pow or Sqrt [modified] Andreas Gieriet27-Oct-12 4:39 Andreas Gieriet 27-Oct-12 4:39
 It can be done. rhuiden26-Oct-12 11:03 rhuiden 26-Oct-12 11:03
 Unless I am missing something you can achieve what you want in a for loop. ```for(int i = 0; i++; i<3) { 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)); } ``` Note: I am not saying that you should do it this way. Your version is probably more clear (especially for new people). My brain just sees things like "you can't do this" and tries to find solutions.
 Re: It can be done. Tharindu Wijeratna26-Oct-12 15:41 Tharindu Wijeratna 26-Oct-12 15:41
 Keep it simple, sir Daniele Alberto Galliano26-Oct-12 2:39 Daniele Alberto Galliano 26-Oct-12 2:39
 Last Visit: 31-Dec-99 18:00     Last Update: 2-Jun-15 22:38 Refresh 1