已知在二维平面上的三个点,A,B,C,若 A,B,C在同一直线上,则输出 0;否则输出 A,B,C围成的三角形的面积。
已知在二维平面上的三个点,A,B,C,若 A,B,C在同一直线上,则输出 0;否则输出 A,B,C围成的三角形的面积。
输入数据:
输入数据一共3行,每行2个数,依次为Ax,Ay,Bx,By,Cx,Cy,代表三个点的坐标。
输入数据保证为整数;对于50%的数据,-10000 <= Ax,Ay,Bx,By,Cx,Cy <= 10000;对于100%的数据,-1000000000 <= Ax,Ay,Bx,By,Cx,Cy <= 1000000000。
输出数据:
输出数据一共1行,为三点围成的三角形的面积,输出数据小数点后保留2位。(若三点共线,则输出0.00)。
0 0 3 0 0 4
6.00
-1000000000 -1000000000 999999999 -1000000000 0 999999999
1999999998000000000.50
Scanner sc = new Scanner(System.in); while (sc.hasNext()) { BigDecimal Ax = sc.nextBigDecimal(); BigDecimal Ay = sc.nextBigDecimal(); BigDecimal Bx = sc.nextBigDecimal(); BigDecimal By = sc.nextBigDecimal(); BigDecimal Cx = sc.nextBigDecimal(); BigDecimal Cy = sc.nextBigDecimal(); BigDecimal res1 = Bx.subtract(Ax);//Bx-Ax BigDecimal res2 = Cy.subtract(Ay);//Cy-Ay res1 = res1.multiply(res2);//(Bx-Ax)*(Cy-Ay) BigDecimal res3 = By.subtract(Ay); BigDecimal res4 = Cx.subtract(Ax); res3 = res3.multiply(res4); res1 = res1.subtract(res3); res1 = res1.divide(new BigDecimal("2")); res1 = res1.abs(); System.out.println(res1.setScale(2)); }