读书人

用VB求任意5个点组成的多边形的面积的

发布时间: 2012-02-06 15:52:44 作者: rapoo

用VB求任意5个点组成的多边形的面积的思路?
搜索了下这个坛子,发现比较多的就是用定积分的方式来求的,但我是菜鸟。。。移植不到VB上来呀。。于是我自己想了下,能否用坐标投影那种求几个梯形的面积最后相减的方法来做呢。但仔细一想又不对,那样的话凸多边形好求,可是如果是像鞋子那种形状的凹多边形就不好办了。。。。。所以请教各位高手,有什么思路?
或者给我讲讲VB里面怎么用定积分算多边形面积?谢谢!!

[解决办法]
function isPointInLine(x,y,x1,y1,x2,y2)
{
//是否一个点向x轴的射线穿透线段,有交点
var maxY=(y1> =y2)?y1:y2;
var minY=(y1 <=y2)?y1:y2;
var re=false;
if(y <=maxY && y> =minY)
{
if(x <= ( x1+(x2-x1)*(y-y1)/(y2-y1) ) )
{
re=true;
}
}
return(re);

}


function isPointInPolygon(x,y,Polygon)
{//是否点在多边形里
var crossNum=0;
var re=true;
for(var i=0;i <Polygon.length-1;i++)
{
if(isPointInLine(x,y,Polygon[i][0],Polygon[i][1],Polygon[i+1][0],Polygon[i+1][1]))
{
crossNum++;
}
}

if((crossNum % 2)==0)
{
re=false;
}
return(re);
}

读书人网 >VB

热点推荐