首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

给定一个可能相交的多边形,求它的轮廓线

最近遇到一个需求,给定一个多边形可能相交),求这个多边形的轮廓线。 需要注意的是,轮廓线多边形内不能有空洞,使用的不是常见的非零绕数规则(nonzero)以及奇偶规则(odd-even)。...整体思路 计算多边形的交点,求出一个有多边形点和交点信息的邻接表。 从最下方的点开始,找出与其相邻节点中夹角最小的点保存到路径中,不断重复这个行为,直到点又回到起点位置。...下面我们会以这个 “8” 字形多边形为例,进行讲解。...number][]>(); 线段 1-2 初始化时,表为 { ‘1-2’: [ [0, 1], // 点 1,距离起点 0 [96, 2], // 点 2,距离起点 96 ] } ...-2’: [ [0, 1], // 点 1,距离起点 0 [0, 4], // 点 4,距离起点 40 [96, 2], // 点 2,距离起点 96 ] } 另一条相交

12510

HPUX安装Nagios监控插件(NRPE)难点解析

HPUX上安装NRPE,特别是在监控Oracle数据库有一些疑难的点,自己一摸索一整理了出来,就当是做个备忘 一、下载预编译好的depot源码包 包名:NRPE-2.12.depot.gz 免费下载地址在...libexec/check_nrpe -H xxxxxx NRPE v2.12 返回上信息测试成功,在服务端同样测试 netstat -na | grep 5666 查看nrpe服务端口 安装过程中常见疑难解答...可能原因: a、遇到这个问题,最好的测试方法是在nrpe.cfg的中相关监控项目后加上 >> /tmp/output  2>&1 将输出结果输入一个 文件,方便查看; b、一些库文件找不到,如utils...libexec目录下有,但系统会自动到/目录下查找,只要做个软连接就可以了  ln -s /opt/nrpe/libexec/utils.sh  /utils.sh c、提示ps,grep,awk等命名找不到...sqlplus操作需要具有oracle用户的相关权限,只需要将nrpe用户添加  到oinstall组 usermod -G oinstall nrpe 4、执行check_oracle这个脚本就报错,如找不到服务名

60900
您找到你想要的搜索结果了吗?
是的
没有找到

维诺图分析与实现

1.问题描述 1.1 定义 维诺图(Voronoi Diagram)又叫泰森多边形或 Dirichlet 图,由两邻点连线的垂直平分线组成的连续多边形构成。...维诺图有如下特点: 每个V多边形内有一个生成元; 每个V多边形内点到该生成元距离短于到其它生成元距离; 多边形边界上的点到生成此边界的生成元距离相等; 邻接图形的 Voronoi 多边形界线以原邻接界线作为子集...遍历三角形链表,寻找与当前三角形pTri三的相邻三角形TriA,TriB和TriC。 如果找到,则把寻找到的三角形的外心与pTri的外心连接,存入维诺链表中。...如果找不到,则求出最外边的中垂线射线存入维诺链表中。 遍历结束,所有维诺被找到,根据画出维诺图。...(7)具有凸多边形的外壳:三角网最外层的边界形成一个凸多边形的外壳。 Delaunay 剖分是一种三角剖分的标准,实现它有多种算法。

5100

维诺图(Voronoi Diagram)分析与实现

一、问题描述 1.Voronoi图的定义 又叫泰森多边形或Dirichlet图,它是由一组由连接两邻点直线的垂直平分线组成的连续多边形组成。...2.Voronoi图的特点 (1)每个V多边形内有一个生成元; (2)每个V多边形内点到该生成元距离短于到其它生成元距离; (3)多边形边界上的点到生成此边界的生成元距离相等; (4)邻接图形的...Voronoi多边形界线以原邻接界线作为子集。...如果找不到,则求出最外边的中垂线射线存入维诺链表中。 (5)遍历结束,所有维诺被找到,根据画出维诺图。 2....(7)具有凸多边形的外壳:三角网最外层的边界形成一个凸多边形的外壳。 Delaunay剖分是一种三角剖分的标准,实现它有多种算法。

5.6K21

C++ OpenCV检测并提取数字华容道棋盘

图像的预处理边缘检测完了,就要开始查找图像中最大轮廓了,因为需要寻找数字华容道的棋盘,所以除了长最大面积外,还要考虑是四形的轮廓,不是四形的直接排除即可。...(dstmat.size(), CV_8SC3); Mat tmpcontour; dstcontour.copyTo(tmpcontour); //定义拟合后的多边形数组...Point> convexhull; approxPolyDP(Mat(contours[i]), convexhull, lensval, true); //拟合的多边形存放到定义的数组中...,首先通过计算轮廓的周长再乘0.01得到的值做为阈值,然后通过这个阈值对轮廓的点进行多边形拟合,拟合后的轮廓点个数来判断是不是四形。...上面这张图就是背景太过复杂,边缘检测后找不到合适的轮廓 ? 上图中轮廓检测没问题,但是多边形拟合后得到的轮廓为5个点, 所以不认为是四形 ? 行人这个肯定检测不出四形 ?

95520

visual studio 2017安装教程以及各类问题解决方案

文章的关键词和所含教程: VS2017安装/visual studio 2017安装/Xamarin/Android for visual studio 2017/VS2017找不到网站/VS2017找不到...如果你的界面跟我的相似,找不到新建 Xamaxin、Android、Ios、网站的地方, 说明安装是不正常的。...----  - - - -  - - - - - - - - 以下教程是针对安装 VS2017 后,能够正常使用,却找不到 Xamarin、新建网站/ASP.NET、Android/IOS 开发等选项,...第一种方法是利用 DISM,参考别人的文章,这里笔者就不赘述了,附上文章链接: 解决Windows 组件存储已损坏,0x80073712错误  第二种方法,重点推荐 运行 Windows 更新疑难解答程序...注意 如果选择“保存”,下载完成后你需要转到下载疑难解答程序的文件夹,然后双击最新的 wu.diagcab 文件以运行疑难解答程序。

2.7K30

一种快速判断点在多边形内的算法

思路: 先求和点的交点, 即的起点y乘以斜率,得到交点的x, 若x == X, X是参考点的横坐标,则点在线上。 2....点和多边形的顶点重合 思路:参考点与顶点重合,则直接是 x == X && y == Y ,其中x,y是顶点, X,Y是参考点, 则直接返回。 3....射线刚好经过一条 思路: 这个最简单, 直接判断 y == Y,可以理解成穿过了这条的2个顶点, Y是参考点的纵坐标, y是的纵坐标。 问题都解决了,其实并不复杂。...count := len(area) // 点是否在多边形中 var inInside bool // 浮点类型计算与0的容差 precision := 2e-10 // 依次计算每条...true } // 浮点类型计算容差 if math.Abs(_x-x) < precision { return true } // 射线平行于x轴,穿过多边形

1K10

Voronoi多边形和Delaunay三角剖分

泰森多边形法,美国气候学家A·H·Thiessen提出了一种根据离散分布的气象站的降雨量来计算平均降雨量的方法,即将所有相邻气象站连成三角形,作这些三角形各的垂直平分线,于是每个气象站周围的若干垂直平分线便围成一个多边形...泰森多边形的特性: 1、每个泰森多边形内仅含有一个离散点数据; 2、泰森多边形内的点到相应离散点的距离最近; 3、位于泰森多边形边上的点到其两的离散点的距离相等。...定义 Delaunay:假设E中的一条e(两个端点为a,b),e若满足下列条件,则称之为Delaunay:存在一个圆经过a,b两点,圆内(注意是圆内,圆上最多三点共圆)不含点集V中任何其他的点,这一特性又称空圆特性...定义 Delaunay三角剖分:如果点集V的一个三角剖分T只包含Delaunay,那么该三角剖分称为Delaunay三角剖分。...具体的说是指在两个相邻的三角形构成凸四形的对角线,在相互交换后,六个内角的最小角不再增大。

2.2K30

Python之turtle模块-画圈圈

前面我们画过正多边形。下面我们来做两个小实验,看看大家有什么感悟。 实验一 首先我们来画正四形,正六形,正八形......,一直到正三十边形。 ?...这些正多边形的外接圆的半径都是一样的。 实验二 下面再来做一个实验,我们同样画正三十边形,只是这次我们尝试不同的外接圆的半径。 ?...实验结果 从实验一的结果来看,正多边形数越多,样子看上去越接近于圆。 从实验二的结果来看,虽然都是正三十边形,但是半径小的看上去更“圆润”一些,而半径大的看上去更“棱角分明”一些。...实验结论 利用turtle画圆,实际上我们可以用正多边形来无限逼近,直到人的肉眼无法分别,就算“蒙混过关了”。那不同半径的圆,究竟该用多少的正多边形来画呢?...3,计算多边形数,int强制转换成整数 n = int(circumference / 3) + 1 # 得到数之后,重新计算多边形的边长, # 得到的length这时可能是小数了

1.2K40

网页CAD二次开发实现圆转多边形的详细教程

基于mxcad库实现圆转多边形功能圆转多边形功能是根据用户输入的数将目标圆转变成正多边形,其中转变方式分两种情况,一种是转换后的正多边形内接于目标圆,一种是转换后的正多边形外切于圆。...外切于圆:即目标圆为多边形的内切圆,它与多边形的每条都相切,且与多边形的中心在同一直线上。因此我们可以通过获取多边形的外切圆反向绘制多边形。...通过命令行交互让用户设置多边形数,默认为正五形。...let getNum = new MxCADUiPrInt(); getNum.setMessage('设置多边形数'); let num = await getNum.go() || 5;...            /**             * 知道三个角加一条求其他两             * 一条:r             * 三个角 90 360/num*2

13210

Python之turtle模块-正多边形

前面我们用turtle画了正方形,也就是正四形,虽然我们平时不这么叫它。我们今天来画正多边形。顾名思义就是数大于等于三条,并且每条的长度都一样。美国的五角大楼就是正五形。 ?...中心角 任何一个正多边形,都可作一个外接圆。多边形的中心就是所作外接圆的圆心,所以每条的中心角,实际上就是这条所对的弧的圆心角,因此这个角就是360度÷数。...外角 与正多边形的内角相对应的是外角,多边形的外角就是将其中一条延长并与另一条相夹的那个角。...可以看到180-2*底角=外角,而中心角也是180-2*底角(三角形内角和是180),因此正多边形的外角等于中心角。 初中老师可以休息了,下面我们来看一下如何用tutle来画正五形的过程。 ?...import turtle # 定义画多边形的函数,有三个参数 # t是turtle对象,n是多边形数,length是的长度 def polygon(t, n, length): #

1.9K40

Mapinfo高阶-判断点是否位于多边形

主流算法: (1)面积和判别法:判断目标点与多边形的每条组成的三角形面积和是否等于该多边形,相等则在多边形内部。...(2)夹角和判别法:判断目标点与所有边的夹角和是否为360度,为360度则在多边形内部。 (3)引射线法:从目标点出发引一条射线,看这条射线和多边形所有边的交点数目。...具体做法:将测试点的Y坐标与多边形的每一个点进行比较,会得到一个测试点所在的行与多边形的交点的列表。在下图的这个例子中有8条与测试点所在的行相交,而有6条没有相交。...如果测试点的两点的个数都是奇数个则该测试点在多边形内,否则在多边形外。在这个例子中测试点的左边有5个交点,右边有三个交点,它们都是奇数,所以点在多边形内。 ?...另外的算法: 1、将点设置为红色; 2、将多边形设置为黑色; 3、查询点的颜色,黑色则说明位于多边形内,红色则说明位于多边形外。

1.7K20

算法 - PNPoly解决点和多边形问题

如何求解点到多边形的距离 此题求解需要解决两个问题: 点到多边形的最短距离。 点是否包含在多边形内。...点到的距离 计算点到多边形最短距离的基本原理是:依次计算点到多边形每条的距离,然后筛选出最短距离。 ? 如下图,假设AB为多边形的一条,现在求点P到AB的距离。 ?..."no 0" : "yes" + " " + dist);} 首先,我们需要取得该数组在横坐标和纵坐标的最大值和最小值,根据这四个点算出一个四型,判断目标坐标点是否在这个四型之内,如果在这个四型之外...这个表达式的意思是说,随便画个多边形,随便定一个点,然后通过这个点水平划一条线,先数数看这条横线和多边形相交几次(可先排除那些不相交的,即第一个判断条件),然后再数这条横线穿越多边形的次数是否为奇数...contained;} 点在多边形内部 - 射线法 判断点是否在多边形内,可以从这个点做一条射线,计算它跟多边形边界的交点个数,如果交点个数为奇数,那么点在多边形内部,否则点在多边形外。

2.2K31

开源图片编辑器-可用于海报编辑、商品设计、封面设计、标签设计等场景

项目预览界面自定义字体渐变、自定义字体、大小、行高、间距、背景色都可以调整,还有描、阴影等通用属性。...图形绘制不仅仅支持文本,普通的形状元素、SVG、二wei码、条形码、不规则多边形都支持右键菜单快捷键可以通过插件化的方式来定义快捷键和右键菜单,图片滤镜图片裁剪拖拽调整画布PSD导入水印设置分类素材创建设计与作品分类功能比较完整...,包括设计模板、登录注册、新建设计、用户作品素材管理等功能:我是一名独立开发者,目前在全职维护这个开源项目,欢迎大家使用,如果有需要赶紧Star吧,省的后边找不到:https://github.com/

12020

游戏开发中的进阶向量数学

假设您有一个凸 多边形。例如,矩形,梯形,三角形或没有面向内弯曲的任何多边形。 对于多边形的每个片段,我们都会计算经过该片段的平面。...对于另一个多边形,我们必须找到一个平面,在该平面上所有 其他多边形点都将 返回一个正距离。...您可能想知道非凸多边形会发生什么。通常可以通过将凹面多边形拆分为较小的凸面多边形,或使用诸如BSP(如今已不多使用)之类的技术来处理。 3D碰撞检测 这是另外一个奖励,是对耐心和遵守本篇教程的奖励。...要稍微刷新一点,一个分离平面意味着多边形A的所有顶点都在该平面的一侧,而多边形B的所有顶点都在另一侧。该平面始终是面A或面B的端面之一。...但是在3D中,这种方法存在问题,因为在某些情况下可能找不到分离平面。这是这种情况的一个示例: 为了避免这种情况,需要测试一些额外的平面作为分隔符,这些平面是面A的与面B的之间的叉积。

83740

青少年编程:用Python探究数学(3)

在上一篇中,使用for循环绘制了正多边形。本篇要在此基础上,进一步优化上一篇的程序。 从数学的角度来讲,正多边形(或者说正 形,)的外角和是 ,那么每个外角的度数就是 ,其中 为多边形。...就会看到小海龟按照程序中指定的方式画图了,一个正10形跃然“屏”上。 ? 在上面的程序中,我们实现了正多边形数的键盘输入,那么,正多边形的边长能不能通过键盘输入呢?读者可以思考一下,然后尝试。...from turtle import * shape("turtle") n = input("请输入多边形数:") length = input("请输入多边形的边长:") n = int(n)...我让小海龟画一个正100的图形,结果什么样? ? 怎么看起来像圆?不过仔细观察,会发现,没有圆那么圆滑,不是圆,是多边形。 “看起来像圆”,这说明当多边形数很多的时候,这个多边形就接近圆了。...在数学上,人们很早就研究了正多边形和它的外接圆的关系,也发现了这样的规律,当多边形数阅读,该多边形与外接圆越接近——这是一种近似地计算圆的周长的方法。

76720

平面几何:判断点是否在凸多边形

今天我们来实现判断点是否在凸多边形内的算法。 需求 提供一个凸多边形(用点数组表示),以及一个点,判断这个点是否在多边形内。 凸多边形,指的不存在自我相交,且内角小于 180 度的多边形。...我们计算凸多边形的所有边向量,和向量起点到起点的叉乘,记为点相对边的方向。 如果方向都是左边,或都是右边,则点在凸多边形内,否则点不在凸出变形内。...}; const b = { x: point.x - start.x, y: point.y - start.y, }; // 通过叉积公式得到点在的方向...== currDir) { return false; } } // 点都在的同一方向上 return true; }; 这里我认为点在边上,也算在凸多边形上,所以当叉积计算出了...如果你认为这种情况属于不在凸多边形上,直接结束循环并返回一个 false 即可。 结尾 我是前端西瓜哥,关注我,学习更多平面几何知识。

7610

基于Turf.js教你快速实现地理围栏的合并拆分

w=400&h=339&f=gif&s=4560436] 多边形的合并是指将多个多边形合并为一个多边形,其前提条件是多边形之间有交叉区域或者共。...可是Turf.js目前还没有提供多边形的拆分方法,另外多边形的合并虽然已有union方法,但在实际应用中也无法很好解决部分共多边形的合并问题,所以只能在Turf的基础上自行实现符合业务需求的拆分合并功能...多边形的合并 turf.union Turf提供union方法可以对有交集的多边形进行合并,可以处理完全共、部分压盖、包含的情况,环多边形也是可以处理的。...但是在处理部分共多边形时,仍然存在点、线关系判定没有容限的问题,导致点被判定在线外而无法完全合并。...不过可以转换思维方式,将部分共的情况转换为完全共,再交给union进行合并。

2.9K30

光栅图形学的中的算法

1.边缘填充算法 其基本思想是按任意顺序处理多边形的每条。...在处理每条时,首先求出该与扫描线的交点,然后将每一条扫描线上交点右方的所有像素取补。多边形的所有边处理完毕之后,填充即完成。 ?...算法简单,但对于负责图形,每一像素可能被访问多次,输入和输出量比有效算法大得多。 为了减少边缘填充法对访问像素的次数,可采用栅栏填充算法。...2.栅栏填充算法 栅栏指的是一条过多边形顶点且与扫描线垂直的直线。它把多边形分为两半。...在处理每条与扫描线的交点时,将交点与栅栏之间的像素取补 2.多边形的扫描转换与区域填充算法小结 (1)基本思想不同 多边形扫描转换是指将多边形的顶点表示转化为点阵表示

1.1K60

UE4Unity绘制地图基础元素-面和体

通过全链路的排查,才查出是多边形数据的问题。 三角剖分在使用时有一个前置条件:使用对象必须为简单多边形,即多边形中的任何两条仅可以在顶点处相交。...下图(a)多边形为满足定义的简单多边形,图(b)多边形01和23在非顶点处相交,因此是非简单多边形。...[ee31e72b5ea5461f93f2eed5c910d845~tplv-k3u1fbpfcp-watermark.image] 按照这种想法对现有数据进行了的相交检测,确实存在一小部分的多边形不是简单多边形...以上述的非简单多边形(b)为例,12拔起生成矩形1245,23拔起生成矩形2364,两个侧面矩形在面1245上完全重合,当外立面贴上不同的纹理后就会产生Z-Fighting现象。...] 形有 [8057722c07b246788d7fbf46d1e56265~tplv-k3u1fbpfcp-watermark.image] 条,每条只需要和其他的 [8af87c70057a4701a3cfb8053ffffa98

1.2K51
领券