> ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200328173723973.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzQ2NDU2ODc5,size_16,color_FFFFFF,t_70)
> 先输入一个数,代表n边形.然后输入n个坐标.
> 此方法可以求任意几边形的面积.
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner cin =new Scanner(System.in);
int k=1;
while(cin.hasNext()) {
int n=cin.nextInt();
Polygon g=new Polygon();
g.p=new Point[n];
for(int i=0;i<n;i++) {
g.p[i]=new Point();
g.p[i].x=cin.nextDouble();
g.p[i].y=cin.nextDouble();
}
System.out.printf("Case %d:%.1f\n",k++,Math.abs(g.area()));
}
}
}
class Polygon{//多边形类
Point p[];
public double area() {//求面积方法
double s=0;
for(int i=0;i<p.length;i++) {
if(i==p.length-1) {
s=s+p[i].x*p[0].y-p[0].x*p[i].y;
}
else {
s=s+p[i].x*p[i+1].y-p[i+1].x*p[i].y;
}
}
return s/2;
}
}
class Point{//点类
double x;
double y;
}
行列式求任意多边形面积(坐标的方法)
最新推荐文章于 2023-01-19 22:02:26 发布