POJ Problem 3910 Build Your Home

来源:互联网 发布:88折话费 源码 编辑:程序博客网 时间:2024/06/05 08:39

给定多边形的各个顶点,求该多边形的面积。

选多边形的任意一个顶点作为原点,它与任意相邻的两个顶点可构成一个三角形,而三角形面积可由三个顶点构成的两个平面向量的外积求得。任意多边形的面积公式为:




import java.io.*;import java.lang.Math;import java.util.Scanner;class Point{public double x, y;Point(double a, double b){ x = a; y = b;}}public class beta {  public static void main(String args[]) {  Scanner in = new Scanner(System.in);  while(in.hasNext()){  int n = in.nextInt();  if(n == 0) break;  Point []p = new Point[n];  for(int i = 0; i < n; ++i){  double a = in.nextDouble();  double b = in.nextDouble();  p[i] = new Point(a, b);  }  double area = 0.0;  for(int i = 0; i < n-1; ++i){  area +=  (p[i].x - p[0].x)*(p[i+1].y - p[0].y)-(p[i].y - p[0].y)*(p[i+1].x-p[0].x);  }  area = Math.abs(area)*0.5;  int ans = (int)area;  if(area - ans < 0.5) System.out.println(ans);  else System.out.println(ans + 1);  }    }}



1 0
原创粉丝点击