zoukankan      html  css  js  c++  java
  • C# 判断点是否在多边形内

    /// <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;
    }

  • 相关阅读:
    leetcode hot 100
    tls证书制作
    全面解析Kafka
    redis cluster
    redis 常用命令
    mysql 备份
    mysql 读写分离
    mysql 复制模式
    mysql 主从
    mysql多实例以及主从
  • 原文地址:https://www.cnblogs.com/sidely/p/3781797.html
Copyright © 2011-2022 走看看