写C语言的实验用到的一个算法,判断一个点是否在多边形的内部。C的代码如下:
int pnpoly(int nvert, float *vertx, float *verty, float testx, float testy)
{
int i, j, c = 0;
for (i = 0, j = nvert-1; i < nvert; j = i++) {
if ( ((verty[i]>testy) != (verty[j]>testy)) &&
(testx < (vertx[j]-vertx[i]) * (testy-verty[i]) /
(verty[j]-verty[i]) + vertx[i]) )
c = !c;
}
return c;
}
其中nvert是多边形顶点的个数,vertx和verty分别是多边形顶点横、纵坐标的数组,textx和testy是待测点的坐标。这个算法是由W. Randolph Franklin提出的,根据Jordan curve theorem,多边形将平面分为内外两个区域,假设待测点在多边形内部,从待测点引出一条射线必然会与多边形有至少一个交点。该射线与多边形第一次相交时将“冲出”多边形,第二次相交将“进入”多边形,依此类推,若射线与多边形有奇数个交点,则该点在多边形内部,反之则在外部。
PNPoly算法正是从待测点引出一条水平向右的射线,并计算与多边形的交点个数。解释一下这段代码:for (i = 0, j = nvert-1; i < nvert; j = i++)循环的含义就是始终让j = i – 1,如果i = 0那么j = nvert – 1,从而依次检验多边形的每条边。接下来的重点就是条件语句,(verty[i]>testy) != (verty[j]>testy)很好理解,就是一条边上的两个顶点分别在待测点的上方和下方,通过这条语句可以知道从待测点向右引出的射线有可能与该条边相交(只要待测点在边的左侧即可)。
但具体判断相交就要交给解析几何了。建系写出该条边所在直线的方程:
变形一下:
代入待测点坐标,根据图形关系得到这个不等式:
也就是语句testx < vertx[j]-vertx[i]) * (testy-verty[i]) / (verty[j]-verty[i]) + vertx[i]了.
相关推荐:
SEO小白必看!从零起步SEO的秘诀,轻松提升网站排名,南京网站运营优化平台
pbootcms自动翻译插件,让你的网站轻松实现多语言覆盖,ai 镀金
seo网页优化什么意思,seo网站优化必知的10个问答,问吧,【解决】百度不知道 ,ai识别点读机
360ai答题-赋能教育,开启智能学习新纪元,ai 果汁
如何通过AI写文章,轻松提高写作效率与质量
在线AI文章生成:内容创作新革命
seo要学什么技术,seo要学什么技术好 ,ai.fale
ChatGPT为什么打不开了?揭秘背后的原因与解决办法,ai业务后端
AI撰写工具的无限可能,让内容创作更高效、更精彩!
SEO人工优化-让你的网页轻松登上搜索引擎首页,ai主母
seo网站通过什么软件,网站seo软件哪个 ,战团ai
SEO优化需要花钱吗?从零起步,如何让SEO成为企业的“隐形财富”,字体如何往ai里面倒
自动写文章AI:高效创作工具,开启写作新纪元
SEO优化做什么的?揭秘SEO优化的核心价值与实战应用,ai做金色
SEO单页网站:助力企业在线营销的一站式解决方案,湖南视频网站优化方式
SEO妍:搜索引擎优化的艺术,轻松打造网络营销新未来,辽宁网站建设贵不贵
SEO自从上线后的演变与未来发展趋势,拼多多增加关键词排名
好用的AI智能工具,让生活与工作更高效!
SEO量:提升网站流量和排名的关键法则,德兴seo
ChatGPT昨晚突然不能使用,背后真相令人意想不到!,edga ai
怎样用AI写文章?快速高效创作新技能!
什么是seo推广找行者SEO,seo推广效果怎么样 ,西宁ai万词霸屏系统
ChatGPT宕机恢复时间如何解决用户焦虑与技术背后的故事,ai人工智能写作火山
如何快速写出高质量的AI文章:从入门到精通
AI撰写大数据解决方案:开启智能数据时代的新篇章,ai头号公敌
SEO合同:确保您网站优化成功的关键保障,微博营销推广规则最新
AI一键生成文章免费:革新写作方式,提升创作效率
SEO拓客,让您的业务飞速增长!,密云自适应网站建设
SEO合作:让你的网站在搜索引擎中脱颖而出,惠州抖音seo策划公司
整理文章的AI:提升写作效率的智能助手
GoogleGPT-引领未来智能对话的革命,灵境ai画质
SEO检测,让网站排名飞升的秘密武器,高端快消食品营销推广
SEO外链技巧:提升网站排名的秘密武器,ai视频生日祝福
ChatGPT登录界面都不显示了?可能是这些原因导致的!,上海小学ai智能课
AI上的文章属于原创吗?人工智能创作内容的归属问题
ChatGPT启动时遇到问题?快速解决方案让你畅享智能对话体验,ai如何保存logo
AI免费生成文字,打造创作新时代
什么是seo网络推广,seo网络推广技术 ,ai写真官方
SEO流程全解析:如何提升网站流量与排名,账号如何营销推广
SEO建站,开启网站优化的全新篇章!,网络营销推广合作方式
SEO分类:从基础到进阶,全面解析SEO优化的关键要素,新建设网站排名
2025百度收录优化:提升网站排名,助力企业数字化转型,第一ai做
用AI写的文章算原创吗?真相揭示,带你深度思考!
SEO针对中小企业的增长潜力:如何通过精准优化抢占市场先机,网络推广和营销就选y火10星评价
高效创作之路:文章AI生成器的力量
SEO这种营销方式,改变你网站流量的秘密武器,佛山网站设计建设
二创AI:打破创意壁垒,引领未来内容创作新潮流,背影教案网站建设游戏
SEO表述:如何通过精准优化让你的内容脱颖而出,江阴网站建设怎么样啊
seo网络上什么意思,seo表示什么 ,如何避免今日头条ai写作检测
什么是seo快排,seo快排方案 ,ai剪图形