判断点是否在多边形内(C++)

原创 2014年01月27日 15:51:01
/********************************/
// 参数:
// x: 点的x坐标
// y: 点的y坐标
// vertex: 多边形顶点组(顺时针或逆时针顺序)
// num: 多边形顶点数
//
// return: 点是否在多边形内
/*******************************/

bool IsInPolygon(float x, float y, float vertex[][2], int num)
{
    if( num < 3 )
        return false;

    int count = 0;
    for (int i = 0; i < num; i++)
    {
        float p1[2] = { vertex[i][0], vertex[i][1] };
        float p2[2] = { vertex[(i+1) % num][0], vertex[(i+1) % num][1] };

        if( p2[1] == p1[1])
            continue;

        if( y < p2[1] && y < p1[1])
            continue;

        if( y > p2[1] && y > p1[1])
            continue;

        float xx = (y - p1[1]) * ( p2[0] - p1[0]) / (p2[1] - p1[1]) + p1[0];

        if( xx >= x )
            count++;
    }
    
    return (count % 2 == 1);
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

判断一个点是否在多边形内 C++

1. 叉乘判别法(只适用于凸多边形) 想象一个凸多边形,其每一个边都将整个2D屏幕划分成为左右两边,连接每一边的第一个端点和要测试的点得到一个矢量v,将两个2维矢量扩展成3维的,然后将该边与v叉...
  • orange_xxx
  • orange_xxx
  • 2012年04月10日 15:47
  • 5073

PHP判断点是否在不规则多边形中

  • xyd360
  • xyd360
  • 2017年06月04日 11:31
  • 749

【C/C++学习笔记】判断一个点是否在多边形内部的例子

/* 原理: 将测试点的Y坐标与多边形的每一个点进行比较, ** 会得到测试点所在的行与多边形边的所有交点。 ** 如果测试点的两边点的个数都是奇数个, ** 则该测试点在多边形内,否则在多边形...
  • TMT123421
  • TMT123421
  • 2015年11月03日 17:19
  • 2048

判断点是否在任意多边形内(java)

import java.util.ArrayList; public class Test { public static void main(String[] args) { ...
  • lwtwan321
  • lwtwan321
  • 2015年04月27日 10:35
  • 126

PHP判断点在多边形里还是在多边形外

  • yongzhen150
  • yongzhen150
  • 2013年10月31日 13:44
  • 1557

python 实现 射线法 判断一个点在图形区域内外

关于射线法可以参考下面这个blog ,写得非常详细:http://www.cnblogs.com/mazhenyu/p/3800638.html 下面是我用python 实现的代码: # -*-e...
  • u010429424
  • u010429424
  • 2015年04月02日 12:11
  • 3954

判断一个点是否在多边形内(java)

原文链接:http://blog.csdn.net/a57565587/article/details/9500763判断一个点是否在多边形内(java): /** * 返回一个点是否...
  • u013217071
  • u013217071
  • 2016年07月12日 18:42
  • 1747

如何判断一个点是否在多边形内?

在GIS(地理信息管理系统)中,判断一个坐标是否在多边形内部是个经常要遇到的问题。乍听起来还挺复杂。根据W. Randolph Franklin 提出的PNPoly算法,只需区区几行代码就解决了这个问...
  • u011722133
  • u011722133
  • 2016年10月14日 10:03
  • 4184

C++ 点在多边形内算法——判断一个点是否在一个复杂多边形的内部

转自:http://blog.csdn.net/hjh2005/article/details/9246967 新页面(new page)介绍了将样条曲线添加到此技术的内容。也可以访问多边形...
  • gf771115
  • gf771115
  • 2015年01月19日 10:56
  • 5045

判断点是否处于多边形内的三种方法

 1. 叉乘判别法(只适用于凸多边形) 想象一个凸多边形,其每一个边都将整个2D屏幕划分成为左右两边,连接每一边的第一个端点和要测试的点得到一个矢量v,将两个2维矢量扩展成3维的,然后将该边与...
  • huixingshao
  • huixingshao
  • 2014年11月06日 12:56
  • 3683
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:判断点是否在多边形内(C++)
举报原因:
原因补充:

(最多只允许输入30个字)