给定多边形的各个顶点,求该多边形的面积。
选多边形的任意一个顶点作为原点,它与任意相邻的两个顶点可构成一个三角形,而三角形面积可由三个顶点构成的两个平面向量的外积求得。任意多边形的面积公式为:
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);
}
}
}