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

  • 相关阅读:
    pip备忘录
    Vue.js---------------1引入
    centos安装数据库
    Python之网络编程二
    Python之协议
    Python高级
    jvm-3学习教程
    jvm学习-2
    jvm相关学习
    八种常用的排序算法
  • 原文地址:https://www.cnblogs.com/sidely/p/3781797.html
Copyright © 2011-2022 走看看