2015-05-27 3 views
1

Я новичок в Java. Я пытаюсь вычислить площадь треугольника, используя формулу:Расчет площади треугольника

S = (сторона 1 сторона + 2 + боковые 3)/2

площадь = квадратный корень (сторона (сторона - сторона 1) (сторона - side2) (side-side3).

Если пользователь вводит три точки как: 1,5 -3,4 4,6 5 9,5 -3,4, то площадь треугольника должна быть 33,6. Однако моя программа работает, но она дает мне неправильный ответ. Вот мой код.

// Import Java Scanner 
import java.util.Scanner; 
import java.lang.Math; 
public class Ex_2_19 { 
    public static void main(String[] args) { 
    //Create a Scanner object 
    Scanner input = new Scanner(System.in); 
    float side = 0; 
    float area1 = 0; 
    float area2 = 0; 
    float area3 = 0; 
    float area4 = 0; 
    float calculatedarea = 0; 

    //Prompt the user to enter three points of a triangle 
    System.out.println("Enter point x1:"); 
    System.out.println("Enter point y1:"); 
    System.out.println("Enter point x2:"); 
    System.out.println("Enter point y2:"); 
    System.out.println("Enter point x3:"); 
    System.out.println("Enter point y3:"); 

    //Define the variables 
    float Pointx1 = input.nextFloat(); 
    float Pointy1 = input.nextFloat(); 
    float Pointx2 = input.nextFloat(); 
    float Pointy2 = input.nextFloat(); 
    float Pointx3 = input.nextFloat(); 
    float Pointy3 = input.nextFloat(); 

    //Formula to calculate the area of a triangle 
    side = (Pointx1 + Pointy1 + Pointx2 + Pointy2 + Pointx3 + Pointy3)/2; 
    area1 = side - (Pointx1 + Pointy1); 
    area2 = side - (Pointx2 + Pointy2); 
    area3 = side - (Pointx3 + Pointy3); 
    area4 = side * area1 * (area2) * (area3); 
    calculatedarea = (float) (Math.sqrt(area4)); 
    //calculatedarea = (float) (Math.sqrt(area1)*(area2) * (area3)); 

    //Print result 
    System.out.println("The area of the triangle is " + calculatedarea); 


} 

}

+2

Формула, которую вы используете, работает по длине сторон треугольника. Вы просто складываете координаты X и Y каждой точки - вообще ничего не связано с длиной. –

+0

На основе https://www.mathsisfun.com/geometry/herons-formula.html найдите длины a, b, c, вычисляя расстояние между каждой парой координат xy. То, как вы вычисляете область 1, 2, 3 4, кажется неправильным. – Gosu

ответ

4

Вы пытаетесь Heron's Formula - обратите внимание, что a, b, c являются евклидово расстояние между точками, таким образом, должны быть вычислены sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2)) и т.д., а не только сумма разностей.

Смежные вопросы