#region 判断点在选择的范围内
//判断点在线的一边
private int isLeft(Point P0, Point P1, Point P2)
{
int abc = (int)((P1.X - P0.X) * (P2.Y - P0.Y) - (P2.X - P0.X) * (P1.Y - P0.Y));
return abc;
}
//判断点pnt是否在region内主程序
private bool isInRegion(Point pnt, List<Point> region)
{
int wn = 0, j = 0; //wn 计数器 j第二个点指针
for (int i = 0; i < region.Count; i++)
{
//开始循环
if (i == region.Count - 1)
{
j = 0;//如果 循环到最后一点 第二个指针指向第一点
}
else
{
j = j + 1; //如果不是 ,则找下一点
}
if (region[i].Y <= pnt.Y) // 如果多边形的点 小于等于 选定点的 Y 坐标
{
if (region[j].Y > pnt.Y) // 如果多边形的下一点 大于于 选定点的 Y 坐标
{
if (isLeft(region[i], region[j], pnt) > 0)
{
wn++;
}
}
}
else
{
if (region[j].Y <= pnt.Y)
{
if (isLeft(region[i], region[j], pnt) < 0)
{
wn--;
}
}
}
}
if (wn == 0)
{
return false;
}
else
{
return true;
}
}
#endregion
专业从事基于C#,WinForm ,WPF,Silverlight,WCF以及MS Sql Server 2000/2005/2008/2012 Oracle 9i/10g/11g数据库系统的ERP,CRM,企业进销存等各种数据库管理系统开发。Asp.net,Asp.net mvc,Webservice,WCF, Webapi等服务程序开发。
基于Oracle MySQL MSSql postgresql各种数据库的管理系统数据同步服务。以及基于MapXtreme, Arcgis Engine ,以及基于Arcgis for silverlight/Javascript的WebGIS等相关的GIS系统二次开发。基于Windows 10 Mobile的移动端开发方案。针对各种系统的二次开发维护,并提供相关开发的技术性支持,如程序BUG解决,应用系统架构,技术难题攻克等相关技术服务。
联系方式: QQ :80163278(devgis) 邮箱:devgis@qq.com