从txt文件读取多边形点的坐标,计算任意多边形的面积

来源:互联网 发布:从程序员到架构师之路 编辑:程序博客网 时间:2024/06/06 03:15
import java.io.BufferedReader;import java.io.File;import java.io.FileReader;import java.io.IOException;/** *  * @author zcg * @version 2.0 * 类说明:从txt文件读取多边形点的坐标,计算任意多边形的面积 */public class Perimeter {public static void main(String[] args) {Perimeter pi=new Perimeter();pi.CountPerimeter();}/** * 计算多边形面积的方法 */public void CountPerimeter() {//文件路径String pathname="D:\\练习数据\\parm.txt";//创建文件对象File file=new File(pathname);//声明字符输入流BufferedReader br=null;//每行的字符串String s=null;//用于值的传递double x2=0;double y2=0;//面积的和double sum=0;//标记int k=0;//记下第一个坐标的xdouble k1=0.0;//记下第一个坐标的ydouble k2=0.0;try {br=new BufferedReader(new FileReader(file));//每次读一行while((s=br.readLine())!=null) {String []x=s.split(",");//每次读取坐标的yString y=x[1].substring(0, 1);Double y1=(double) Integer.parseInt(y);//每次读取坐标的xDouble x1=(double) Integer.parseInt(x[0]);/*计算面积的公式(x2,y2)代表第一行的坐标值(x1,y1)代表下一行的坐标值*/if(k!=0) {sum+=((y2-y1)*(x2+x1))*0.5;//值得交换(第一个坐标的值)x2=x1;y2=y1;}else {k1=x1;k2=x2;}k++;}//用最后读取的坐标与第一次读取的坐标进行一次运算(计算完成)sum+=((y2-k2)*(x2+k1))*0.5;//输出面积System.out.println(sum);} catch (IOException e) {e.printStackTrace();}finally {try {if(br!=null) br.close();} catch (IOException e) {e.printStackTrace();}}} }
txt文件:一个矩形的四个点坐标

原创粉丝点击