题目链接:点击打开链接
题目大意:按逆时针给出n个坐标,求该n边形的面积。
题目思路:利用向量叉积求n边形面积 每个三角形面积为(x1*y2-y1*x2)/2
本人第一次不是用向量法来做,把直接n边形分成n-2个三角形,最终总是过不了,一查资料才知道,多边形分凹凸多边形,凹多边形使用直接分割法,不太好做。
下面先给大家分享错误代码:(只适用与凸多边形)
/*
把n边形分割成n-2个三角形,在求各个三角形的面积
此方法只能求凸多边形面积
*/
import java.util.*;
class Main{
public static void main(String args[]){
Scanner sc=new Scanner(System.in);
while(sc.hasNext()){
int n=sc.nextInt();
if(n==0){
break;
}
int x1=sc.nextInt();
int y1=sc.nextInt();
Point p1=new Point(x1,y1); //第一个点
int x2=sc.nextInt();
int y2=sc.nextInt();
Point p2=new Point(x2,y2); //第二个点
double areaSum=0; //所有三角形的面积和