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

如何求R投影上不规则多边形的最小外接圆?

求解不规则多边形的最小外接圆是一个经典的计算几何问题。下面是一个完善且全面的答案:

最小外接圆问题是指给定一个不规则多边形,如何找到一个圆,使得该圆刚好能够包围住多边形的所有顶点,并且圆的半径最小。

解决这个问题的一种常见方法是使用Welzl算法,也称为随机增量法。该算法的基本思想是递归地找到一个最小外接圆,首先将多边形的顶点集合S划分为两个子集S1和S2,然后递归地求解S1和S2的最小外接圆,最后将两个最小外接圆合并为一个最小外接圆。

具体步骤如下:

  1. 如果多边形的顶点数量小于等于3个,则直接计算这些顶点的几何中心作为最小外接圆的圆心,将多边形的最远顶点到圆心的距离作为最小外接圆的半径。
  2. 如果多边形的顶点数量大于3个,则随机选择一个顶点p作为最小外接圆的圆心,并将其从顶点集合S中移除。
  3. 对于剩余的顶点集合S中的每个顶点q,如果q在最小外接圆内,则继续下一个顶点;否则,将q添加到顶点集合S1中。
  4. 递归地求解S1的最小外接圆,得到圆心为c1,半径为r1。
  5. 如果S1为空,则最小外接圆的圆心为p,半径为p到S中最远顶点的距离。
  6. 如果S1不为空,则将p添加到顶点集合S1中,递归地求解S1的最小外接圆,得到圆心为c1,半径为r1。
  7. 将p添加到顶点集合S2中,递归地求解S2的最小外接圆,得到圆心为c2,半径为r2。
  8. 如果c1和c2相等,则最小外接圆的圆心为c1,半径为r1和r2的最大值。
  9. 如果c1和c2不相等,则最小外接圆的圆心为c1和c2的中点,半径为c1和c2之间的距离的一半。

通过以上步骤,就可以求解出不规则多边形的最小外接圆。

在腾讯云的产品中,可以使用图像处理服务(Image Processing)来进行多边形的最小外接圆计算。该服务提供了丰富的图像处理功能,包括几何变换、边缘检测等,可以方便地进行几何计算。您可以通过以下链接了解更多关于腾讯云图像处理服务的信息:https://cloud.tencent.com/product/imgpro

请注意,以上答案仅供参考,具体的解决方法可能因应用场景和具体需求而有所不同。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

cf------(round)#1 C. Ancient Berland Circus(几何)

: 以一个场地遗迹,呈现多边形,但是不知道具体是几边形,只知道他三个点,能包含这三个点最小多边形面积: 对于这样题目: 思路为: 先求出他外接圆,得到外接圆半径rr...(1外接圆求法: { (1) 有给定坐标我们不难求出三条边边长,rea,reb,rec; (2) 又海伦公式得到三角形面积: 周长cc=(rea+reb+rec)/2.0...: 我们再来求出每一条边对应圆心角a,b,c; 求出a,b,c圆心角最大公约数st; 这样我们就可以知道他是边数: 2*pi/st; 所以得到最小单位三角形面积为Area=rr*rr...*sin(st)/2; 总面积只需再剩边数就可以得到........5 const double PI = 3.1415926535; 6 const double esp=0.01; 7 struct node{ 8 double x,y; 9 //两点之间长度

59230

图形学复习

法向量插值法:保留双向性插值,并对顶点采用法向量插值,其中顶点法向矢量由该点相邻多边形面片法向矢量值取平均值取得。 连通:同一像素在上、下、左、右四个方向上连通。 投影分为平行投影和透视投影。...平行投影:由一组平行光照射产生图形;透视投影:从某一投射中心,把物体投射到单一投影面。...分形:研究不规则几何图形形状,也称为大自然几何学,通过各种变换算法来研究不规则图形,具有零散,破碎图形。...光点:一般是指电子束打在显示器荧光屏,显示器能够显示最小发光点。 象素:指图形显示在屏幕时候,按当前图形显示分辨率所能提供最小元素点。...简述图形是如何从图形数据呈现到屏幕原理、方法和过程。 显示缓冲区是与屏幕像素一一对应二维矩阵,每一个存储单元对应着屏幕像素,其位置可由二维坐标来表示。

1.7K20

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

2.Voronoi图特点 (1)每个V多边形内有一个生成元; (2)每个V多边形内点到该生成元距离短于到其它生成元距离; (3)多边形边界点到生成此边界生成元距离相等; (4)邻接图形...主要是指生成Voronoi图时先生成其对偶元Delaunay三角网,再找出三角网每一三角形外接圆圆心,最后连接相邻三角形外接圆圆心,形成以每一三角形顶点为生成元多边形网。如下图所示。...(4)最优性:任意两个相邻三角形形成凸四边形对角线如果可以互换的话,那么两个三角形六个内角中最小角度不会变大。...(5)最规则:如果将三角网中每个三角形最小角进行升序排列,则Delaunay三角网排列得到数值最大。 (6)区域性:新增、删除、移动某一个顶点时只会影响临近三角形。...public bool isInCircle(DelaunayTriangle triangle, Site site) ; //三角形外接圆心 public void circle_center

5.3K21

光怪陆离世界之Delaunay三角剖分和Voronoi图

便知道什么叫做空圆特性,然后第二幅图中两个三角形最小那个内角度数一定大于第一幅图中两个三角形最小内角度数. 这就是最大化最小角特性....所以我们只需要遍历 V 中所有点集,对每个点执行一次上面的程序,得到一个Voronoi图 多边形即可. 这里顺便说一下如何从A顺时针或者逆时针获取相邻三角形....三角形外心就构成voronoi图一个多边形, 将其放入 poly 数组中去. } } 纵观上面的过程,显然我们需要写一个计算三角形外接圆函数....以及如何产生炒鸡三角形....但是实际调试过程发现一个坑, 就是其实不能这样定炒鸡三角形,而要稍微大一圈才行,不然会遇到问题. 一图胜千言. 也就是我们实际需要炒鸡三角形是 P1Q1R1, 而不是 PQR. 为什么呢?

3.7K51

模拟试题C

( ) A)3 B)6 C)7 D)8 5.扫描线消隐算法在何处利用了连贯性( ) (1)计算扫描线与边交点;(2)计算多边形在其边界深度值;(3)计算多边形在视窗任意点处深度值;(...7.在多边形扫描转换中,计算扫描线与多边形顶点相交时,按开下闭原则,对于该奇点记数,下述哪一叙述是正确( ) A)当射线与多边形交于某顶点时且该点两个邻边在射线上方时,计数0次; B)...7.屏幕最小显示单元叫做 ,它多少叫做 。 五、综合题(41′) 1.计算利用中点画线法生成P(2,1)到Q(10,5)直线所经过像素点。...要求写出每一步递推过程x,y坐标及判别式d值,最后图示直线结果。(6分) 2.如图B.15所示,经过透视投影变换后点P(1, 2, 3)坐标。...已知:观察平面为z=4,投影中心为R(0,0,5)。

2K30

Voronoi多边形和Delaunay三角剖分

用这个多边形内所包含一个唯一气象站降雨强度来表示这个多边形区域内降雨强度,并称这个多边形为泰森多边形。如图,其中虚线构成多边形就是泰森多边形。泰森多边形每个顶点是每个三角形外接圆圆心。...定义 Delaunay边:假设E中一条边e(两个端点为a,b),e若满足下列条件,则称之为Delaunay边:存在一个圆经过a,b两点,圆内(注意是圆内,圆最多三点共圆)不含点集V中任何其他点,这一特性又称空圆特性...要满足Delaunay三角剖分定义,必须符合两个重要准则: 1、空圆特性:Delaunay三角网是唯一(任意四点不能共圆),在Delaunay三角形网中任一三角形外接圆范围内不会有其它点存在。...如下图所示: 2、最大化最小角特性:在散点集可能形成三角剖分中,Delaunay三角剖分所形成三角形最小角最大。从这个意义讲,Delaunay三角网是“最接近于规则化三角网。...具体说是指在两个相邻三角形构成凸四边形对角线,在相互交换后,六个内角最小角不再增大。

2.2K30

Python之turtle模块-画圈圈

这些正多边形外接圆半径都是一样。 实验二 下面再来做一个实验,我们同样画正三十边形,只是这次我们尝试不同外接圆半径。 ?...实验结论 利用turtle画圆,实际我们可以用正多边形来无限逼近,直到人肉眼无法分别,就算“蒙混过关了”。那不同半径圆,究竟该用多少边多边形来画呢?...t.lt(angle) def circle(t, r): # 根据半径计算圆周长 circumference = 2 * math.pi * r # 这里取多边形边长为...3,计算多边形边数,int强制转换成整数 n = int(circumference / 3) + 1 # 得到边数之后,重新计算多边形边长, # 得到length这时可能是小数了...range(50, 200, 50): circle(bob, r) move(bob, 'fd', 2 * r) turtle.mainloop() 检验成果时候到了 ?

1.2K40

(hdu step 7.1.5)Maple trees(凸包最小半径寻找掩护轮)

事实就是在完凸包以后再一下最小覆盖圆即可了。 这道题须要用到下面的一些知识: 1、关于钝角三角形,假设c是斜边,那么必定有a^2 + b^2 < c^2证明。...另外在求解过程中。不须要考虑点输入顺序是顺时针还是逆时针,相除后就抵消了。 3、 凸包+最小圆覆盖 枚举随意3点找其最小覆盖圆 (当为钝角三角形时不是外接圆,而是以其最长边为直径圆)。...这道题还须要注意是: 1、在使用完graham最小凸包以后。尽量让这个凸包闭合。即p[n] = p[0]。...* 假设这三个点形成外接圆半径最大, * 那么这个就是我们所要找凸包最小覆盖圆 */ for(i = 0 ; i < n ; ++i){ for(j = i+1 ;...} if(maxr < r){//假设眼下存储最大半径<当前外接圆半径 maxr = r;//则更新眼下最大半径 } } } }

32020

使用 SVG 和 JS 创建一个由星形变心形动画

下图中,高亮突出显示直角三角形就是由正多边形外接圆半径、内切圆半径以及边线一半组成。...从这个三角形中,如果我们知道内切圆半径以及与多边形相对圆心角(两个半径之间锐角等于圆心角一半),我们就可以计算出外接圆半径。 ?...外圆(五角星形外接圆)上有 5 个点,内圆(小五边形外接圆也有 5 个点。总共有 10 个点,它们所在径向线之间角度为 360°/10 = 36° 。 ?...端点及控制点分别平均分布在内五边形和五角星外接圆 (live). 我们已经知道这两个圆半径。...通过这个函数,我们首先计算变换形状时不会改变常量,比如五角星形外接圆半径(外圆半径)、正五角星和正多边形一条边所对圆心角、五角星形和内五边形(其顶点是五角星形边交叉点)共有的内切圆半径、内五边形外接圆半径

4.7K51

PCL点云曲面重建(1)

在测量较小数据时会产生一些误差,这些误差所造成不规则数据如果直接拿来曲面重建的话,会使得重建曲面不光滑或者有漏洞,可以采用对数据重采样来解决这样问题,通过对周围数据点进行高阶多项式插值来重建表面缺少部分...(2)在平面模型提取凸(凹)多边形 本例子先从点云中提取平面模型,再通过该估计平面模型系数从滤波后点云投影一组点集形成点云,最后为投影点云计算其对应二维凸多边形 ?...->points.size () << " data points." << std::endl; // 存储提取多边形点云 pcl::PointCloud::Ptr...(3)无序点云快速三角化 使用贪婪投影三角化算法对有向点云进行三角化, 具体方法是: (1)先将有向点云投影到某一局部二维坐标平面内 (2)在坐标平面内进行平面内三角化 (3)根据平面内三位点拓扑连接关系获得一个三角网格曲面模型...(M_PI/18); // 设置三角化后得到三角形内角最小角度为10 gp3.setMaximumAngle(2*M_PI/3); // 设置三角化后得到三角形内角最大角度为120 gp3

1.8K10

YbtOJ 894「高斯消元」高维寻点

Solution 首先二维最小覆盖圆求法: 首先我们枚举一个点 p_i,如果它不在原本前 i-1 个点最小覆盖圆内,就必然在当前前 i 个点最小覆盖圆。...因此我们重构最小覆盖圆,由于初始只能确定这一个点在最小覆盖圆,所以令此时最小覆盖圆圆心为当前点,半径为0。...然后我们再在 [1,i) 中枚举点 p_j,如果它不在当前最小覆盖圆内,同理我们可以确定它在新最小覆盖圆,那么我们就能确定两个点。...同理继续在 [1,j) 中枚举点 p_k,如果它不在当前最小覆盖圆内,就令新最小覆盖圆为这三个点最小外接圆(其实之前两种情况也都是特殊最小外接圆)。...这个做法看似暴力,但实际可以利用 随机增量法 来使复杂度正确。即将数据随机打乱。 可以证明是 O(N) 。 那么高维只需要解决如何最小外接圆

25730

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

前言 在线CAD SDK集成过程中,甲方客户可能有实现圆转多边形功能需求,作为开发者如何利用WEB CAD SDK展现此功能效果呢?本章节我们重点讲述一下。环境搭建1....基于mxcad库实现圆转多边形功能圆转多边形功能是根据用户输入边数将目标圆转变成正多边形,其中转变方式分两种情况,一种是转换后多边形内接于目标圆,一种是转换后多边形外切于圆。...下面我们将分别介绍如何实现这两种转换方式。1. 内接于圆:即目标圆为多边形外接圆,它与多边形每个顶点都相接。...因此我们可以通过在目标圆均匀取点找到多边形所有顶点,最后通过多段线闭合连接成多边形,如下图:2. 外切于圆:即目标圆为多边形内切圆,它与多边形每条边都相切,且与多边形中心在同一直线上。...根据多边形条数求得多边形每个内角度数,再根据目标圆半径值可求多边形外切圆半径值:目标圆半径 / sin(90 - (360 / (num * 2))),如下图所示:使用 mxcad 库实现完整圆转多边形功能

12210

图像 主轴 相关知识

/p-764752910.html 主轴定义: 1)从投影角度来说,沿着主轴方向做投影,物体所得到宽度最小; 2)从统计学角度来说,主轴方向就是该物体主分量方向,以该主分量为基础做线性变换可以去掉随机向量中各元素间相关性...1 二值物体中心: 所有点 x y 坐标和 除以 点个数 2 主轴方向, 三个方法:投影法,主分量分析法,频谱纹理分析法 2.1 投影法 如果沿主轴方向做投影,在垂直轴向方向上形成投影宽度应该是最小...具体使用 Hough 变换 2.2 主分量分析法 物体主轴也可以用主分量分析法来做。主分量分析法是在统计特征基础多维正交线性变换,在实际应用中一般都称为 K-L 变换。...2.3 纹理分析法 离散傅里叶变换 各方法优缺点: 1)投影误差主要来自于做投影时候步进角度,精度和计算时间矛盾 2)主分量分析法误差主要是和待主轴物体几何形状或者说图像点分布有关系...所以纹理分析法适合细长型物体,物体长宽比越大,计算物体主轴方向就会越准确,反之,物体越不规则,长宽比越小,频谱图像越杂乱无章,计算出主轴方向就会存在很大误差甚至根本就提不出来。

77230

番外篇: 凸包及更多轮廓特征

多边形逼近 前面我们学习过最小外接矩和最小外接圆,那么可以用一个最小多边形包围物体吗?...,得到多边形角点 approx = cv2.approxPolyDP(cnt, 3, True) # 3.画出多边形 image = cv2.cvtColor(image, cv2.COLOR_GRAY2BGR...2(epsilon)是一个距离值,表示多边形轮廓接近实际轮廓程度,值越小,越精确;参数3表示是否闭合。...凸包 凸包跟多边形逼近很像,只不过它是物体最外层"凸"多边形:集合A内连接任意两个点直线都在A内部,则称集合A是凸形。...其中参数3为True时表示计算距离值:点在轮廓外面值为负,点在轮廓值为0,点在轮廓里面值为正;参数3为False时,只返回-1/0/1表示点相对轮廓位置,不计算距离。

93110

Basemap工具函数(4)

tissot Tissot 指示图或 Tissot 歪曲椭圆是在地图上显示圆,展示了这些圆是如何适应投影(即,在不同位置出现了球面相同曲率)。通常,不同位置会出现不同扭曲度。...npts 是多边形定点数。...,需要scipy.ndimage 注意: 当输入矩阵是不规则 longitude-latitude 网格(例如,不是 cylindric 投影),此方法将不能正确使用,因为longitude-latitude...transform_vector 给定向量场 东西 和 南北 方向分量以及经纬度点,然后对向量进行旋转,使向量场在地图投影以适当方向显示。...旋转和插值向量并返回新网格 设置 nx 和 ny 为15,在地图投影网格将是 15 x 15,这也是最后在地图上所能看到点数 绘制原始数据和插值后数据

1.4K10

Python之turtle模块-正多边形

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

1.8K40

OpenCV | 二值图像分析技巧都在这里

轮廓属性 二值图像分析最常见一个主要方式就是轮廓发现与轮廓分析,其中轮廓发现目的是为轮廓分析做准备,经过轮廓分析我们可以得到轮廓各种有用属性信息、常见的如下: 轮廓面积 轮廓周长 轮廓几何矩 轮廓最小外接矩形...轮廓最大外接矩形 轮廓最小外接圆 轮廓最小外接三角形 轮廓拟合(支持拟合直线、椭圆、圆) 轮廓凸包 轮廓层次信息提取 多边形逼近 计算欧拉数 函数介绍 OpenCV中提供大量轮廓分析函数,通过这些函数我们可以方便快捷得到轮廓各种有用属性信息...minAreaRect( InputArray points ) // 计算最大外接矩形 Rect cv::boundingRect( InputArray array ) // 计算最小外接圆...points, OutputArray hull, bool clockwise = false, bool returnPoints = true ) // 多边形逼近...OpenCV寻找复杂背景下物体轮廓 如何识别出轮廓准确长和宽 OpenCV中几何形状识别与测量 OpenCV中BLOB特征提取与几何形状分类 OpenCV直线拟合检测 OpenCV中实现曲线与圆拟合

1.7K30

你被追尾了

只需要找出 矩形离圆心最近点,然后通过判断该点与圆心距离是否小于圆半径,若小于则为碰撞。 那么如何找出矩形离圆心最近点呢?...这就是分离轴定理名字由来. ? 但是程序中遍历所有光源角度是不现实,那如何确定 投影轴 呢?其实投影数量与多边形边数相等即可。 ?...显然,上述代码有几个需要解决地方: 如何确定多边形各个投影轴,也就是上述 getAxes 函数怎么实现 如何多边形投射到某条投影,也就是上述 project 函数怎么写 如何检测两段投影是否发生重叠...这就是上述 getAxes 函数 投影(project) 通过将一个多边形每个顶点与原点(0,0)组成向量,投影在某一投影,然后维护该多边形在该投影所有投影最大值和最小值,这样即可表示一个多边形在某投影投影了...我们只需将圆形投射到一条投影即可,这条轴就是圆心与多边形顶点中最近一点连线,如图所示: ? 因此,该投影轴和多边形自身投影轴就组成了全部待检测投影轴了。

4.6K30
领券