判断点在凸多边形內

article/2025/9/18 10:18:52

判断点在凸多边形內

判断点在凸多边形内的算法有很多,可以参考链接3,个人尝试使用了同侧法,此处也只解析这个方法

 

算法原理:

同侧法是判断点在向量哪一侧的一个方法,这个算法的概念是来自于参考文献一,参考文献一判断的是点在三角形内。

通过对这个算法的尝试,发现这个算法完全可是适用于任意凸多边形。

判断点在多边形内的设计思路也很简单,就是将凸多边形想象成首位相连方向都是顺时针或者是逆时针的一组向量(一定是AB,BC,CA,如下图,一定不能出现AB,BC,AC这种向量首尾不能衔接的情况),被凸多边形包住的点都在这组向量的一侧(顺时针都在右侧,逆时针都在左侧),

同侧法:

 

 

 

注意:此方法只适合凸多边形

 

python代码复现:

def SubPoint(point1, point2):x = point1[0] - point2[0]y = point1[1] - point2[1]return (x, y)
​
​
def CrossProduct(point1, point2):return point1[0] * point2[1] - point1[1] * point2[0]
​
​
def IsPointInConvexPolygon(pointlst, targetp):length = len(pointlst)if length == 0:ValueError("pointlst is wrong")
​nCurCrossProduct = 0.0nLastValue = 0.0
​for i in range(length):indbegin = iindend = i + 1if indend == length:indend = 0vU = SubPoint(targetp, pointlst[indbegin])vV = SubPoint(targetp, pointlst[indend])nCurCrossProduct = CrossProduct(vU, vV)if (i > 0  and (nCurCrossProduct * nLastValue <= 0)):return FalsenLastValue = nCurCrossProductreturn True
​参考链接二中C的代码

 

结果:

程序中,我创建了一张彩色图像,然后给与了六边形的六个顶点,遍历图像,将在六边形内的像素赋白色,在六边形外的像素赋黑色,得到结果如图

 

 

关于凹多边形不适用的说明:

说太多都是废话,直接上图,虽然图糙了点。很显然顺时针时,绿色部分在1、2、3、4、6的右侧,但是在5的左侧,因此凹多边形不适用。

 

参考链接:

https://zhuanlan.zhihu.com/p/106253152

https://www.cnblogs.com/calence/p/9988172.html

https://www.zhihu.com/question/27505636

 


http://chatgpt.dhexx.cn/article/mZcwbgXY.shtml

相关文章

—【动态规划】凸多边形最优三角剖分

0014算法笔记——【动态规划】凸多边形最优三角剖分 分类&#xff1a; 算法 2013-03-05 20:10 612人阅读 评论(0) 收藏 举报 三角剖分 凸多边形最优解 动态规划 算法笔记 1、问题相关定义&#xff1a; (1)凸多边形的三角剖分&#xff1a;将凸多边形分割成互不相交的三角形的…

0014算法笔记——【动态规划】凸多边形最优三角剖分

1、问题相关定义&#xff1a; (1)凸多边形的三角剖分&#xff1a;将凸多边形分割成互不相交的三角形的弦的集合T。 (2)最优剖分&#xff1a;给定凸多边形P&#xff0c;以及定义在由多边形的边和弦组成的三角形上的权函数w。要求确定该凸多边形的三角剖分&#xff0c;使得该三角…

判断平面多边形的凹凸性

对于平面多边形的三角化处理也是计算机图形学里面的一个领域&#xff0c;最近由于项目的需要&#xff0c;需要对平面多边形进行剖分&#xff0c;特此对其作了些研究。 在对平面多边形进行处理的时候&#xff0c;很多时候需要知道多边形的凹凸性&#xff0c;本文介绍两种方法来…

最小凸多边形(凸包)

描述 给出平面上n个点的坐标&#xff0c;计算最远两点间的距离&#xff0c;以及包含所有点的最小凸多边形&#xff08;凸包&#xff09; 输入 第一行一个整数n&#xff0c;接下来是n行的实数对&#xff0c;表示n个点坐标。2<n<10000 n x1 y1 x2 y2 … xn yn 输出 输出…

计算机几何 - 如何判断一个多边形是凸多边形还是凹多边形

什么是凸多边形和凹多边形&#xff1f; 凸多边形&#xff1a;每个内角都是锐角或钝角&#xff0c;没有大于180度的内角(例如&#xff0c;三角形、正方形)。 凹多边形&#xff1a;至少有一个大于180度的内角(例如&#xff0c;五角星)。 注&#xff1a;大于180度的角又被称为优角…

多边形扩展和收缩(凸多边形和凹多边形)

目录 背景介绍&#xff1a;知识积累&#xff1a;思路点拨&#xff1a;代码区域&#xff1a; 背景介绍&#xff1a; 如下图所示&#xff0c;黑色是原多边形&#xff0c;红色是扩展的多边形&#xff0c;蓝色是收缩的多边形。这是最终的效果。 PS&#xff1a;楼主使用的是ES6的语…

什么是凸多边形和凹多边形

GIS有时需要用算法判断线段是否在多边形内&#xff1b; 最基本的出发点如下&#xff0c; 线段在多边形内的一个必要条件是线段的两个端点都在多边形内&#xff0c;但由于多边形可能为凹&#xff0c;所以这不能成为判断的充分条件&#xff1b; 就是说&#xff0c; 如果线段的两…

判断多边形是凹多边形还是凸多边形,以及求凹点

转载&#xff1a;计算机几何 - 如何判断一个多边形是凸多边形还是凹多边形_刘建宁的博客-CSDN博客_凹多边形和凸多边形的区别 重点&#xff1a; 1.凸多边形指的是多边形的每个内角小于180度。 2.凹多边形指的是至少有一个内角大于180度。 判断多边形性质 多边形内角和等于(n…

凸多边形最优三角

前言&#xff1a;大三下算法课&#xff0c;自己看的凸多边形最优三角&#xff0c;最后上台讲解&#xff0c;和子涵苗子等一起的一段时间 1.相关概念 • 凸多边形&#xff1a;一个简单多边形及其内部构成一个闭凸集时&#xff0c;则 称该简单多边形为一个凸多边形。 • 边&#…

动态规划DP——凸多边形最优三角剖分

1.问题分析 我们可以把披萨饼看作是一个凸多边形&#xff0c;凸多边形是指多边形的任意两点的连线均落在多边形的内部或边界上。 &#xff08;1&#xff09;什么是凸多边形&#xff1f; 如下图所示&#xff0c;是一个凸多边形 如下图所示&#xff0c;不是一个凸多边&#xff0c…

凸多边形、凹多边形、凸包算法

凸多边形&#xff1a; &#xff08;Convex Polygon&#xff09;可以有以下三种定义&#xff1a; 1、没有任何一个内角是优角&#xff08;Reflexive Angle&#xff09;的多边形。 2、如果把一个多边形的所有边中&#xff0c;有一条边向两方无限延长成为一直线时&#xff0c;其他…

搜狗浏览器屏蔽广告插件_“云法庭”里“云勘验” 法院开审搜狗浏览器插件屏蔽优酷视频广告案...

在第20个世界知识产权日到来之际&#xff0c;北京海淀法院通过“北京法院云法庭”公开开庭审理原告优酷信息技术(北京)有限公司(下称优酷公司)与被告北京搜狗科技发展有限公司、被告北京搜狗信息服务有限公司(下合称搜狗公司)涉搜狗浏览器插件屏蔽优酷视频广告不正当竞争纠纷案…

搜狗浏览器屏蔽广告插件_“云法庭”里“云勘验”,海淀法院开庭审理搜狗浏览器插件屏蔽优酷视频广告不正当竞争纠纷案...

来源&#xff1a; 北京海淀法院 特别提示&#xff1a;凡本号注明“来源”或“转自”的作品均转载自媒体&#xff0c;版权归原作者及原出处所有。所分享内容为作者个人观点&#xff0c;仅供读者学习参考&#xff0c;不代表本号观点。 在第20个世界知识产权日到来之际&#xff0…

搜狗浏览器屏蔽广告插件_“云法庭”里“云勘验”法院开审搜狗浏览器插件屏蔽优酷视频广告案...

在第20个世界知识产权日到来之际&#xff0c;北京海淀法院通过“北京法院云法庭”公开开庭审理原告优酷信息技术(北京)有限公司(下称优酷公司)与被告北京搜狗科技发展有限公司、被告北京搜狗信息服务有限公司(下合称搜狗公司)涉搜狗浏览器插件屏蔽优酷视频广告不正当竞争纠纷案…

【视频广告位叫法】

例如&#xff1a;爱奇艺&#xff0c;优酷&#xff0c;腾讯视频&#xff0c;前贴&#xff0c;中插&#xff0c;暂停贴&#xff0c;后贴广告位&#xff01;

优酷 DSP 广告投放系统架构实践

作者 | 鸿雁 阿里文娱技术专家 导读&#xff1a;随着 RTB 网络在线展现广告交易模式的兴起&#xff0c;各大公司都纷纷搭建自己的 DSP ( Demand-Side Platform ) 广告投放系统进行获客。优酷在近几年也搭建 DSP 系统&#xff0c;并且在持续迭代。在这一过程中&#xff0c;经历…

优酷视频在网站里播放

工具/原料 准备一组代码&#xff1a; <embed srchttp://static.youku.com/v1.0.0149/v/swf/loader.swf?VideoIDS视频ID&winTypeadshow&isAutoPlaytrue quality"high" width"580" height"435" align"middle" allowScriptA…

网页引用优酷视频并添加封面自动播放

引用优酷视频可以减轻公司的服务器压力&#xff0c;而且和自己上传保存视频相比会方便轻松许多&#xff0c;不过相对的需要忍受广告。 首先你需要在优酷里找到你要引用的视频&#xff0c;或者自己上传。然后打开会有一个分享按钮&#xff1a; 以我使用的第二个为例&#xff0…

html上传优酷视频,如何将视频发布到自己的企业网站上?

郑州做网站是为了更好的宣传企业&#xff0c;如果网站要想有视频的表现形式&#xff0c;那就得花点心思去考虑了。一般情况下&#xff0c;要想把视频放到网站上&#xff0c;无外乎就两种方式&#xff1a;第一、直接把视频上传到网站目录&#xff0c;然后在合适的位置调用。由于…

php视频系统源码,基于ThinkPHP框架仿优酷视频源码带数据,后台功能强大

源码介绍 最新高仿优酷视频网源码带数据&#xff0c;后台功能齐全强大&#xff0c;而且是基于thinkphph内核开发&#xff0c;很不错&#xff0c;虽然是旧版模板&#xff0c;但是也值得学习&#xff0c;尤其是正在学习ThinkPHP框架的人拿来学习&#xff0c;相信你需要&#xff0…