首页 > 其他分享 >计算坐标点是否在一组不规则的坐标点内

计算坐标点是否在一组不规则的坐标点内

时间:2023-08-24 10:35:33浏览次数:30  
标签:ptK ptJ pt int 点内 ptNum 不规则 坐标

/// <summary>
/// 计算坐标点是否在一组坐标点内
/// </summary>
/// <param name="pt"></param>
/// <param name="polygon"></param>
/// <param name="noneZeroMode"></param>
/// <returns></returns>
public static bool IsWithin(Point pt, IList<Point> polygon, bool noneZeroMode)
{
int ptNum = polygon.Count();
if (ptNum < 3)
{
return false;
}
int j = ptNum - 1;
bool oddNodes = false;
int zeroState = 0;
for (int k = 0; k < ptNum; k++)
{
Point ptK = polygon[k];
Point ptJ = polygon[j];
if (((ptK.Y > pt.Y) != (ptJ.Y > pt.Y)) && (pt.X < (ptJ.X - ptK.X) * (pt.Y - ptK.Y) / (ptJ.Y - ptK.Y) + ptK.X))
{
oddNodes = !oddNodes;
if (ptK.Y > ptJ.Y)
{
zeroState++;
}
else
{
zeroState--;
}
}
j = k;
}
return noneZeroMode ? zeroState != 0 : oddNodes;
}

标签:ptK,ptJ,pt,int,点内,ptNum,不规则,坐标
From: https://www.cnblogs.com/zhanghuiming1/p/17653507.html

相关文章

  • yolov5 推理,获取 对象坐标 等数据
    demoimporttorchimportcv2fromPILimportImage#pt_path=r'E:\Code\Python\YoLov5\yolov5\yolov5s.pt'pt_path=r'E:\Code\Python\yolov5py38\yolov5\best.pt'#Modelmodel=torch.hub.load(r"E:\Code\Python\YoLov5......
  • PCoA(主坐标分析)的生物学文献中的描述
    "我们进行了PCoA以可视化不同环境样本中微生物群落的β多样性。PCoA是一种多元统计方法,它将高维的微生物群落数据转化为二维或三维的坐标,以便我们能够更容易地观察样本之间的差异和相似性。通过PCoA,我们能够发现样本在坐标空间中的聚类和分散情况,从而更好地理解不同环境条件下微......
  • fabric.js 判断点击坐标是否在某个子元素内
     通过 containsPoint方法坐标是否在某个元素内constrect=newfabric.Rect({width:100,height:100,fill:'red',})canvas.add(rect);canvas.on('mousee:down',(event)=>{letpoint=newfabric.Point(event.e.offsetX,eve......
  • Python matplotlib.axes对象常用属性(绘图方式、坐标轴、刻度等)
    目录一、绘图方式1.1基本绘图方式1.2跨度、频谱、填充、2D数组的绘图方式Axes类可以设置图片(或子图)中相关属性:绘图数据、坐标轴刻度/标签、标题、图例等。它是Python操作绘图的主要接口。Matplotlib定义了一个axes类(轴域类),在一个给定的画布(figure)中可以包含多个axes对象,但是同......
  • Oracle数据库经纬度坐标查询优化与结果错误原因分析、SQL中WKT超长文本字符串处理
    目录一、Oracle几何空间数据对象和其他数据库的差异二、Oracle查询一个经纬度坐标是否在边界内部2.1查询条件2.2查询结果错误,似乎是仅做了MBR匹配2.3错误原因2.4解决办法三、SQL中WKT超长文本在Oracle中如何编写3.1Oracle中执行含超长文本的SQL报错3.2使用CLOB无限拼接得到......
  • # yyds干货盘点 # Pandas实战——灵活使用pandas基础知识轻松处理不规则数据
    大家好,我是皮皮。一、前言前几天在Python最强王者群【wen】问了一个pandas数据合并处理的问题,一起来看看吧。他的原始数据如下所示:然后预期的结果如下所示:二、实现过程这里【瑜亮老师】给了一个指导如下:原始数据中包含所有所需的信息,但是因为源系统导出的格式问题,有些数据被分配到......
  • 相机成像的四个坐标系
    相机成像的四个坐标系WriteByChamprinOn2022-11-3GUETEvolutionTeamVisualGroup三维重建第三课:相机标定原理步骤(一)坐标系变换三维重建第四课:相机标定原理步骤(二)世界坐标系到相机坐标系与畸变相机标定——四个坐标系MATLAB有关相机模型《LearningOpenCV3》ch18......
  • Matplotlib设置坐标轴的刻度
    设置坐标轴的刻度以设置x轴的刻度为例xticks(ticks,[labels],**kwargs)参数说明:ticks:数组类型,用于设置X轴刻度间隔[labels]:数组类型,用于设置每个间隔的显示标签**kwargs:用于设置标签字体倾斜度rotation和颜色color等外观属性。不设置刻度时的样式x=np.arange(1,13)y=np.......
  • 获取鼠标相对于浏览器窗口坐标
    <!DOCTYPEhtml><html><head><style>div{position:fixed;top:10px;left:10px;padding:10px;background-color:#f1f1f1;border:1pxsolid#cc......
  • pythonOCC 将二维坐标转化为三维坐标
    OCC当中提供了多种方式转换直接转换为三维坐标使用V3d_View.ProjReferenceAxe()会返回有6个元素的元组,前三位分别对应XYZ例子self._display.View.ProjReferenceAxe()但是,这种方式转换的坐标让人有点摸不着头脑,不推荐 通过求交点获取这种方式会把鼠标限制与某一个面上,......