java计算平⾯多边形的⾯积和周长1.计算不采⽤其他第三⽅jar包的⽅式。
/**
java valueof* 计算多边形⾯积
*/
public class JisuanMianji {
/**
* 求出多边形的⾯积
* @param xy
* @return
*/
public static float mianji(String xy)
{
int i=0;
float temp=0;
//进⾏循环计算,
for(;i<xy.split(";").length-1;i++)
{
temp+=(Float.valueOf(xy.split(";")[i].split(":")[0])-Float.valueOf(xy.split(";")[i+1].split(":")[0]))*
(Float.valueOf(xy.split(";")[i].split(":")[1])+Float.valueOf(xy.split(";")[i+1].split(":")[1]));
}
//最后在对尾点坐标和⾸点坐标进⾏计算
temp+=(Float.valueOf(xy.split(";")[i].split(":")[0])-Float.valueOf(xy.split(";")[0].split(":")[0]))*
(Float.valueOf(xy.split(";")[i].split(":")[1])+Float.valueOf(xy.split(";")[0].split(":")[1]));
return temp/2;
}
/**
* 求出多边形的周长
* @param xy
* @return
*/
public static double zhouchang(String xy)
{
int i=0;
double temp=0;
//进⾏循环计算,
for(;i<xy.split(";").length-1;i++)
{
//采⽤两两坐标进⾏勾股定理的⽅式计算,添加了绝对值的⽅式,避免负数,再⽤开根号的⽅式获取两点距离,            temp+=Math.sqrt(Math.pow(Math.abs(
Double.valueOf(xy.split(";")[i].split(":")[0])-
Double.valueOf(xy.split(";")[i+1].split(":")[0])
),2)+
Math.pow(Math.abs(
Double.valueOf(xy.split(";")[i].split(":")[1])-
Double.valueOf(xy.split(";")[i+1].split(":")[1])
),2));
}
//最后在对尾点坐标和⾸点坐标进⾏计算
temp+=Math.sqrt(Math.pow(Math.abs(
Double.valueOf(xy.split(";")[i].split(":")[0])-
Double.valueOf(xy.split(";")[0].split(":")[0])
),2)+
Math.pow(Math.abs(
Double.valueOf(xy.split(";")[i].split(":")[1])-
Double.valueOf(xy.split(";")[0].split(":")[1])
),2));
return temp/2;
}
public void main(String args[])
{
//多边形坐标字符串,每⼀个分号代表⼀个点的多边形的坐标。每⼀个冒号代表⼀个横坐标和⼀个纵坐标
//多边形坐标字符串,每⼀个分号代表⼀个点的多边形的坐标。每⼀个冒号代表⼀个横坐标和⼀个纵坐标        String xy="12:23;24:35;56:67;78:89;45:67";//多边形最少三个点,⽰例数据仅供参考。
System.out.println("多边形⾯积是:"+mianji(xy));
System.out.println("多边形周长是:"+zhouchang(xy));
}
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。