您的位置:首页 > 编程语言

判断点是否在多边形内的actionscript代码

2011-03-09 10:07 218 查看
//点p是否在多边形内

public static  function insidePolygon( p:Point,pointList:Array):Boolean
{
var counter:int = 0;
var i:int;
var xinters:Number;
var p1:Point;
var p2:Point;
var n:int = pointList.length;

p1 = pointList[0];
for (i = 1; i <= n; i++)
{
p2 = pointList[i % n];
if (p.y > Math.min(p1.y, p2.y))
{
if (p.y <= Math.max(p1.y, p2.y))
{
if (p.x <= Math.max(p1.x, p2.x))
{
if (p1.y != p2.y) {
xinters = (p.y - p1.y) * (p2.x - p1.x) / (p2.y - p1.y) + p1.x;
if (p1.x == p2.x || p.x <= xinters)
counter++;
}
}
}
}
p1 = p2;
}
if (counter % 2 == 0)
{
return(false);
}
else
{
return(true);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: