給定多邊形的各個頂點,求該多邊形的面積。
選多邊形的任意一個頂點作爲原點,它與任意相鄰的兩個頂點可構成一個三角形,而三角形面積可由三個頂點構成的兩個平面向量的外積求得。任意多邊形的面積公式爲:
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);
}
}
}