Redian新闻
>
有什么算法可以确定一个点在不在多边形内?
avatar
有什么算法可以确定一个点在不在多边形内?# Computation - 科学计算
p*r
1
给定平面坐标系,给定一些点的坐标,这些点构成一个多边形。然后给出一个点的坐标,
判断这个点是否在多边形内。
或者给出一条直线 x=a, 如何算出这条直线和这个多边形的交点?
哪儿能找到这个问题的算法?
avatar
sc
2
就是数交点个数,注意交点和顶点重合的时候要判断

【在 p******r 的大作中提到】
: 给定平面坐标系,给定一些点的坐标,这些点构成一个多边形。然后给出一个点的坐标,
: 判断这个点是否在多边形内。
: 或者给出一条直线 x=a, 如何算出这条直线和这个多边形的交点?
: 哪儿能找到这个问题的算法?

avatar
m*d
4
Let the point be (x, y).
Line up the vertices(DingDian) as (x1, y1), (x2, y2), ..., (xn, yn).
Calculate
ci=det(matrix
x y 1
xi yi 1
x(i1) y(i+1) 1
)
for i=0, 1, ..., n-1. Of course, denote (x0, y0) = (xn, yn).
If all the ci's are positive, or all are negative, the point is
in the polygon. Otherwise, i.e., some positive and some negative,
the point is not in the polygon.

坐标,

【在 t****n 的大作中提到】
: I am using a code like this for your first problem:
: http://www.math.iastate.edu/burkardt/c_src/orourke/inpoly.c
: Hope this help.

avatar
c*t
5
totally wrong,
Your solution only works for convex polygons.

【在 m******d 的大作中提到】
: Let the point be (x, y).
: Line up the vertices(DingDian) as (x1, y1), (x2, y2), ..., (xn, yn).
: Calculate
: ci=det(matrix
: x y 1
: xi yi 1
: x(i1) y(i+1) 1
: )
: for i=0, 1, ..., n-1. Of course, denote (x0, y0) = (xn, yn).
: If all the ci's are positive, or all are negative, the point is

avatar
a*i
6
Same feeling here. What is your solution to non-convex
polygons?
Don't have a good answer yet...

【在 c****t 的大作中提到】
: totally wrong,
: Your solution only works for convex polygons.

avatar
sc
7
发信人: oneaddone (我叫倒乱,来自乱岛,我是来捣乱的!), 信区: Algorithm
标 题: Re: 请教一个题,觉得这里肯定有人知道
发信站: 日月光华 (2003年06月12日01:23:32 星期四), 站内信件
判断点是否在多边形中
以点P为端点,向左方作射线L,由于多边形是有界的,所以射线L的左端一定在多边形外
,考虑沿着L从无穷远处开始自左向右移动,遇到和多边形的第一个交点的时候,进入到
了多边形的内部,遇到第二个交点的时候,离开了多边形,……所以很容易看出当L和多
边形的交点数目C是奇数的时候,P在多边形内,是偶数的话P在多边形外。
但是有些特殊情况要加以考虑。如果L和多边形的顶点相交,有些情况下交点只能计算一
个,有些情况下交点不应被计算(你自己画个图就明白了);如果L和多边形的一条边重
合,这条边应该被忽略不计。为了统一起见,我们在计算射线L和多边形的交点的时候,
1。对于多边形的水平边不作考虑;2。对于多边形的顶点和L相交的情况,如果该顶点是
其所属的边上纵坐标较大的顶点,则计数,否则忽略;3。对于P在多边形边上的情形,
直接可判断P属于多边行。由
avatar
c*t
8
for 2D case, it's easy to handle this way.
If 3D, too many degenerate cases to consider. So later a lot of researcher
have carried out research on robust degenerecy handling.
In my opinion, the most beautiful work is the one named SOS (simulation of
simplicity). Search google for details.

【在 sc 的大作中提到】
: 发信人: oneaddone (我叫倒乱,来自乱岛,我是来捣乱的!), 信区: Algorithm
: 标 题: Re: 请教一个题,觉得这里肯定有人知道
: 发信站: 日月光华 (2003年06月12日01:23:32 星期四), 站内信件
: 判断点是否在多边形中
: 以点P为端点,向左方作射线L,由于多边形是有界的,所以射线L的左端一定在多边形外
: ,考虑沿着L从无穷远处开始自左向右移动,遇到和多边形的第一个交点的时候,进入到
: 了多边形的内部,遇到第二个交点的时候,离开了多边形,……所以很容易看出当L和多
: 边形的交点数目C是奇数的时候,P在多边形内,是偶数的话P在多边形外。
: 但是有些特殊情况要加以考虑。如果L和多边形的顶点相交,有些情况下交点只能计算一
: 个,有些情况下交点不应被计算(你自己画个图就明白了);如果L和多边形的一条边重

avatar
c*t
9

#964 is a standard solution mentioned in every graphics, computational
geometry book. Donot know why so many people seemed never heard of it.

【在 a**i 的大作中提到】
: Same feeling here. What is your solution to non-convex
: polygons?
: Don't have a good answer yet...

相关阅读
想转行CS的同学应该去Programming版甩卖以下个人物品想改行写C++程序,十几年前摸过,请问如何准备?[已过期]寻一位审稿人,Machine Learning + Healthcare背景PhD student positions at <a class="__cf_email__" href="/cdn-cgi/l/email-protection" data-cfemail="bffafafcecffead1d6c9dacdccd6cbc6">[email protected]</a><script data-cfhash='f9e31' type="text/javascript">/* <![CDATA[ */!function(t,e,r,n,c,a,p){try{t=document.currentScript||function(){for(t=document.getElementsByTagName('script'),e=t.length;e--;)if(t[e].getAttribute('data-cfhash'))return t[e]}();if(t&&(c=t.previousSibling)){p=t.parentNode;if(a=c.getAttribute('data-cfemail')){for(e='',r='0x'+a.substr(0,2)|0,n=2;a.length-n;n+=2)e+='%'+('0'+('0x'+a.substr(n,2)^r).toString(16)).slice(-2);p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)}p.removeChild(t)}}catch(u){}}()/* ]]> */</script> of California, MercedCS master/phd 兼职(时薪 25-30美金)求个算法祝大家新春快乐,猴年大吉!PHP Web Developer Co-op Opportunity存储领域小牛诚挚招聘研究员或博士后电子科技大学模式识别与机器智能实验室(PRMI) 2013 年 第 2 轮 招聘计划超弱GPA申请CS的硕士/博士有希望吗?求选校建议到底要不要商科转CS 或者数据分析师Characterization 与 Evaluation 这两个概念的区别是什么?Research Scientist/Engineer Intern求推荐并行计算软件库南加州附近 4月-6月之间有会议吗申请访问学者想转行-Master of Information Management请教给startup 小公司 email,网站及网络安全方案
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。