| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 11199 人关注过本帖
标题:如何判断一个点是否在多边形区域内~
只看楼主 加入收藏
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
回复 10楼 xzlxzlxzl
我初初还以为很复杂~但想到了原理后就感觉很简单
可以来看看我说的有什么问题~

过一个多边形作一条直线使获得n个交点~然后把交点在顶点上并且与顶点相连的两条线段在直线的同侧则的交点排除~然后按交点坐标排序~第2*k-1到第2*k个交点之间的线段就在多边形的内部~这对一切的多边形包括凹多边形也适用~可以用笔纸比划一下~

[此贴子已经被作者于2017-4-3 09:01编辑过]


[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-04-03 08:28
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
刚刚在网上搜了一下资料~资料给出三种方法~其实我那个方法优化一下就是引射线法~也是要经过特殊处理的~

http://blog.
~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-04-03 09:28
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册


类似这种相交  交点数量 试试看能判断的出来不
2017-04-03 10:04
初学编程的人
Rank: 2
等 级:论坛游民
威 望:2
帖 子:90
专家分:84
注 册:2017-3-12
收藏
得分:0 
为何不考虑三角形构图,所有的多边形都可以分解成三角形,而且就算到3D形态三角形仍然适用,所以也就不存在所谓凹和凸的问题,要么在三角形内、要么在三角形外。
2017-04-03 11:54
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
回复 14楼 初学编程的人
以下是引用九转星河在2017-4-2 23:14:12的发言:

单个三角形求解好做~但感觉难点在于多边形可能是不规则的~任意三点连成的三角形不一定在多边形区域內~~~


我最初就是这样思考的~你这么一说就回到原点了~~

[此贴子已经被作者于2017-4-3 12:55编辑过]


[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-04-03 12:54
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
回复 13楼 寒风中的细雨
这种属于特殊情况~有两个交点为顶点且连接顶点的两条线段在直线的同侧应舍弃这样的顶点~引射线法要特殊处理~
所以当两个交点处理~还要先判断所求点点是否在边界上~

[此贴子已经被作者于2017-4-3 12:59编辑过]


[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-04-03 12:57
初学编程的人
Rank: 2
等 级:论坛游民
威 望:2
帖 子:90
专家分:84
注 册:2017-3-12
收藏
得分:0 
以下是引用九转星河在2017-4-3 12:54:47的发言:



我最初就是这样思考的~你这么一说就回到原点了~~

计算机图形学里面有一个法线的算法,根据三角形顶点的顺序来确定此三角形是否可见,法线指向人眼即可见,一般是用三角形顶点的顺时针或逆时针
来确定,落在图形之外的点可以用法线背向人眼来确定。具体到你的凹多边形,把凹的部分补起来,这个三角形的顶点顺序与可见三角形顶点顺序相反
即为不可见部分,点落到这个部分就算是外面。
我记得计算机图形学里面是这么做的。
2017-04-03 13:04
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
回复 17楼 初学编程的人
哈哈~和我最初相法的延伸差不多~其实我也有考虑过把凹多边形补全为凸多边形然后把补全区域的部分做个想反记号~不过就是感觉这样编程比较难实现~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-04-03 13:19
xzlxzlxzl
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖北
等 级:贵宾
威 望:125
帖 子:1091
专家分:5825
注 册:2014-5-3
收藏
得分:0 
回复 11楼 九转星河
语文成绩差,九版写的字都看的懂,一句也没看懂!如下图,如何判断红点在多边形内、蓝点在多边形外呢?九版能不能就你算法详细解释下!
图片附件: 游客没有浏览图片的权限,请 登录注册
2017-04-03 17:23
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
回复 19楼 xzlxzlxzl
我就贴个图~

图片附件: 游客没有浏览图片的权限,请 登录注册

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-04-03 18:48
快速回复:如何判断一个点是否在多边形区域内~
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.160968 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved