博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# 判断点是否在多边形内
阅读量:7085 次
发布时间:2019-06-28

本文共 732 字,大约阅读时间需要 2 分钟。

/// <summary>

/// 判断点是否在多边形内
/// </summary>
/// <param name="pnt">点</param>
/// <param name="pntlist">区域的点集</param>
/// <returns></returns>
public static bool PointInFeaces(PointF pnt, List<PointF> pntlist)
{
      if (pntlist == null)
  {
    return false;
  }
      int j = 0, cnt = 0;
      for (int i = 0; i < pntlist.Count; i++)
      {
    j = (i == pntlist.Count - 1) ? 0 : j + 1;
    if ((pntlist[i].Y != pntlist[j].Y) && (((pnt.Y >= pntlist[i].Y) && (pnt.Y < pntlist[j].Y)) || ((pnt.Y >= pntlist[j].Y) && (pnt.Y < pntlist[i].Y))) && (pnt.X < (pntlist[j].X - pntlist[i].X) * (pnt.Y - pntlist[i].Y) / (pntlist[j].Y - pntlist[i].Y) + pntlist[i].X)) cnt++;
  }
  return (cnt % 2 > 0) ? true : false;
}

转载于:https://www.cnblogs.com/sidely/p/3781797.html

你可能感兴趣的文章
AssetBundle 打包资源
查看>>
HSRP热备份
查看>>
js判断变量数据类型
查看>>
通过思科模拟器CISCO PACKET TRACER学习网络8——RIP路由
查看>>
linux下安装oracle11g实例
查看>>
Centos7搭建OpenNebula云平台
查看>>
Shell流程控制之if语句
查看>>
快过高铁!构建云分布式应用还能这样操作?!
查看>>
ftp服务器的搭建于三种访问途径
查看>>
字节流与字符流的区别及相互转换
查看>>
教你将PDF文件旋转的方法
查看>>
初识 Knative: 跨平台的 Serverless 编排框架
查看>>
字符串匹配
查看>>
yum安装varnish
查看>>
计算机基础超简
查看>>
私有云为什么更得企业青睐?
查看>>
python如何学习(二)
查看>>
移动智能终端能快速及时查询商品
查看>>
快速导入多张CAD图纸文件转换成常见的彩色高清JPG格式如何进行?
查看>>
HTTPS与HTTP协议常见问题,http和是https分别是什么
查看>>