思路:可以将图形分为一个个的三角形,将一个顶点固定,并与其他两个定点组合,运用三角形的边求面积公式,有序的与一个个顶点组成的三角形相加即可。
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner a=new Scanner(System.in);
while(a.hasNext())
{
int n=a.nextInt();
float area=0;
if(n==0)
break;
else if(n>=3&&n<=100)
{
int[] m=new int[n]; //创建两个坐标数组
int[] b=new int[n];
for(int i=0;i<n;i++)
{
m[i]=a.nextInt();
b[i]=a.nextInt();
}
for(int i=0;i<n;i++) //多边形求面积,可以将一个点固定,并用其与另外俩个顶点相关联组成一个三角形,这样求一个个三角形面积相加则为多边形的面积
{
//公式为:S=[(X0Y1-X1Y0)+(X1Y2-X2Y1)+...+(X(n-1)Y0-X0Y(n-1))]/2;
int j=(i+1)%n; //当三角形运行到最后一个顶点时,要与最初的顶点相运算,用取余的方法可得
area+=(m[i]*b[j]-b[i]*m[j])/2.0;
}
if(area<0)
area=-area;
System.out.printf("%.1f",area); //精确度要注意
System.out.println();
}
}
}
}
若有错误,还请指正。