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

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

最近遇到一个需求,给定一个多边形(可能相交),求这个多边形轮廓线。 需要注意是,轮廓线多边形内不能有空洞,使用不是常见非零绕数规则(nonzero)以及奇偶规则(odd-even)。...整体思路 计算多边形各交点,求出一个有多边形点和交点信息邻接表。 从最下方点开始,找出与其相邻节点中夹角最小点保存到路径中,不断重复这个行为,直到点又回到起点位置。... key 代表某条线段,value 为一个有序数组,记录落在该线段上点,以及它们到线段起点距离。该数组按距离从小到排序。...接着求交点 4 在 1-2 中距离起点(即点 1)距离,基于判断落在 1-2 中哪两个点之间。结果是在点 1 和 点 2 之间,更新这两个点邻接点数组,将其中 1 和 2 替换为 5。...(1)取左下角点作为起点 找顶点(不包括交点)中最靠下点,如果有多个,取最靠左。这个点一定是轮廓多边形一个点。

12510

推荐算法三视角: 矩阵, 图, 时间线

视角二:图视角 把用户和物品看作顶点,用户评分在用户和物品之间建立起,就得到了一个二部图;在二部图基础上添加更多顶点,形成一个更为复杂图,辅助二部图计算。...考虑每一条权重不一样,是通过用户建立,用户点击物品越多,对应权重就越小。这就是Adamic/Adar算法思想。...阿里著名协同过滤推荐算法swing,寻找图中更加稳固形状,共同评分过两个物品用户集合中,每两个用户和这个两个物品形成了一个四形(下图红边为一个swing结构),统计有多少个这样结构,每一个结构权重是不同...LINE算法考虑顶点二阶相似,两个顶点有边为一阶相似,两个顶点有共同邻居顶点为二阶相似,虽不做随机游走,但可以看作是广度优先采样。...在用户和物品二部图基础上,用户和用户根据社会关系建立起来,这就是社会化推荐。 ? 在用户和物品二部图基础上,增加物品属性作为顶点,建立新,就得到了一个异质信息网络。

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

从传统到深度学习:浅谈点云分割中图结构

随着3D扫描技术进步,如何将点云前景和背景正确分离成为点云处理一个具有挑战性问题。具体来说,就是给定一个对象位置估计,目标是识别属于该对象那些点,并将它们背景点分开。...顶点(白点)在这里5个最近近邻点相连。成本由粗细反映。a)对象点和箭头所指向背景点。b)种子点被相应终端替换,新创建终端继承先前连接种子点权重。c)图分割。...L = {Lp|p∈V}是点云Vlabel。系数λ≥0用来指定区域项Rp()边界属性项B 相对重要性。将来自V所有N个最近邻对定义为集合M。...,vn}上被定义为p个超集合E={e1,e2, ...,ep}。其中每个超都是V非空子集。设H=(V,E)是一个超图,w是一个权重,使得每个超e∈E映射到一个实数w(e)。...简单来说,相比较普通图而言,一个(edge)只能和两个顶点连接;而对于超图来讲,人们定义(这里叫超,hyperedge)可以和任意个数顶点连接。一个图和超图示意图如图5所示: ?

98830

图图存储、BFS、DFS(听说叠词很可爱)

如图所示是一个无向图,图中元素(A、B、C、D、E、F)被称为顶点(vertex),顶点可以任意顶点建立连接关系,这种关系叫做(edge),无向图中是没有方向。...顶点入度是指有多少条指向这个顶点顶点出度指有多少条以这个顶点为起点。 ?...上述都没有权重,假如我们要拿一个图来存储地图数据的话,图中还需要表示距离,那么这个图就变成了带权图(weighted graph)。在带权图中,每条都有一个权重,这个权重可以表示距离。 ?...对于无向图来说,如果顶点 i 和顶点 j 之间有边那么则将 A[i][j] 和 A[j][i] 标记为 1 对于有向图来说,如果顶点 i 有一条指向顶点 j,但是顶点 j 没有一条指向顶点 i,那么则将...就是你从一个顶点出发,假如这个顶点有未被访问过顶点则访问,然后一个一个这么套下去。

91020

SciPy 稀疏矩阵(4):LIL(下)

带权图和无权图 带权图是一种在数据分析和可视化中常用工具,通过对节点和权重进行量化表示,帮助我们更好地理解和呈现数据复杂性和关联性。...邻接矩阵和邻接表 邻接表是一种用于表示图结构数据结构,其中每个顶点都有一个之相关联链表,表示顶点相邻顶点。邻接表是一种非常实用数据结构,因为它可以高效地存储和访问图中顶点。...在邻接表中,每个顶点都通过一个链表来表示之相邻顶点,这使得添加、删除和查找变得非常简单和快速。此外,邻接表还可以实现动态图结构,即在运行时可以轻松地添加和删除顶点。...如果两个顶点之间存在一条,那么邻接矩阵中对应位置值就是 1;如果两个顶点之间不存在,那么对应位置值就是 0。由于同质图是无向图,所以邻接矩阵是一个方阵,即行数和列数相等矩阵。...稀疏矩阵邻接表存储 不失一般性,我们假设有这么一个图,第一,它是一个二分图;第二,它是一个有向图;第三,在其中只有从一种类别的节点指向另一种类别的节点(不能反过来);第四,它是一个带权图,其中权重是任意非零实数

10310

数据结构算法 | 图(Graph)

约束或者顶点个数来分类: 零图(Null graph):只有顶点没有边图; 平凡图(Trivial graph):只有一个顶点图; 按照是否有指向来分类: 有向图(Directed Graph)...也就是(A,B)(B,A)表示不同,一个代表从A到B方向,一个代表从B到A方向。 无向图(Undirected Graph):只是代表链接,没有指向性。...(A,B)(B,A)表示同样。 根据是否在边上存储数据分类: 权重图(Weighted Graph):图中边上附加了权重或值图。这些权重表示连接两个节点之间距离、代价、容量或其他度量。...二维数组中行和列分别代表图中顶点,矩阵中值表示顶点之间是否相连或连接权重。 且用这种方式来表示先前示例图结构,矩阵值 0代表无相连,1代表有相连。...,城市-城市之间航班看作是 有向图,航班价格作为权重,也就完成了题意到图建模。

36191

文心一言 VS 讯飞星火 VS chatgpt (200)-- 算法导论15.2 4题

因此,每个子问题都与O(n)个其他子问题相连,这意味着图中数量是O(n^3)。每条都从表示较小子问题顶点指向表示较大子问题顶点。...数量是O(n^3),但实际上可能会少于这个数,因为我们通常只会计算必要子问题。 每条都从表示较小子问题顶点指向表示较大子问题顶点。...具体来说,对于每个子问题[i, j],我们都有边从子问题[i, k]和[k+1, j]指向,其中i <= k < j。...例如,顶点 (i, j, k) 顶点 (i+1, j, k-1) 和顶点 (i, j-1, k-1) 相连。...因此,子问题图中顶点数为 (n+1) * (n+1),其中每个顶点表示一个子问题,包含了两个矩阵相乘区间。 数:对于每个子问题,我们需要考虑不同划分位置,以确定两个相乘矩阵乘积。

15420

开启图结构学习:图创建和遍历

一般来说我们将一张图定义为G=(V, E),其中集合V表示顶点(nodes),而集合E表示某一对顶点之间关系,叫做,如果这种关系是单向,那么形成图为有向图,反之如果是双向,那么形成图就是无向图...主要有以下几个属性顶点值value 顶点入度in(也就是指向顶点数) 顶点出度out(也就是从该顶点出发数) to节点集合nexts(有向图时,指向节点为to节点,当前节点为from...对于定义就很简单了,确定一个只要知道其从哪个顶点来,到那个顶点去就好了,还有如果是带权图,每个都有一个权重属性!...因此对于类来说,其属性很简单,如下: 权重weight from节点 to节点 定义如下: class Edge{ public: int weight; Node* from;...由于我们edge是有指向,从from节点到to节点,假设有向图为1->3,那么我们可以用有向图方式创建无向图,只不过多了一个描述,则为1->3, 3->1。

52720

普林斯顿算法讲义(三)

这里是我们使用一些定义。 自环 是连接顶点到自身。 如果两条连接相同顶点对,则它们是平行。 一个顶点outdegree是指指向数量。...一个顶点indegree是指指向数量。 子图是构成有向图一部分边(和相关顶点子集。...否则,如果 v->w 指向“错误”方向,我们可以用指向相反方向奇数长度路径替换(这保留了循环中奇偶性)。...加权有向图是一个有向图,其中我们为每条边关联权重或成本。从顶点 s 到顶点 t 最短路径是从 s 到 t 有向路径,具有没有更低权重其他路径属性属性。 我们总结了几个重要属性和假设。...处理负权重解决了相关问题,如查找最长路径。 该算法将顶点放松拓扑排序结合起来。

11610

数据结构–图

2.完全图 3.网:带权图 4.子图:对图 G=(V,E)和G’=(V’,E’), 若V’ V 且 E’ E,则称G’是G一个子图 5.度:顶点x相关联(x,y)数目,称为x度,记作TD...有向图中 表示从i到j有n条,列和就是入度,行和是出度 对于网来说道理亦同 2.邻接表: 无向图:把头结点相连所有元素都存进对应链表里 有向图邻接表:指向元素存进链表 有向图逆邻接表...:指向元素存进链表 如果把图改成了网,那就把每个指向结点加上一个权重空间 3.有向图十字链表 其实也很简单,每一个结点加上弧尾和弧头,第一个指针下一个弧头一样结点,第二个指针指向下一个弧尾一样结点...点结点就是两个指针:第一个指针指向第一个弧头为该结点结点;第二个指针就指向第一个弧尾为该结点结点 4.邻接多重表 点结点:就是data和第一个含有这个顶点 结点,mark—-标志域,可用以标记该条是否被搜索过...; vi和vj—-该条依附两个顶点在图中位置; vilink—-指向下一条依附于顶点vi; vjlink—-指向下一条依附于顶点vj

61440

C语言图结构总结(一)

这里主要介绍: 图各种定义 图顶点之间关系 图存储结构(邻接矩阵、邻接列表等) 图遍历方法(深度优先、广度优先) 最小生成树算法(Prim 算法、Kruskal 算法) # 图各种定义...---- G (V,E):V 为顶点集合,E 为集合 无向顶点 Vi 到 Vj 之间没有方向,用无序偶(Vi,Vj)来表示,(Vi,Vj) (Vj,Vi) 一个意思 有向:也称为弧...# 图顶点之间关系 ---- 对于无向图: 邻接点:G=(V,E),(V1,V2)∈\in∈E,则 V1 和 V2 互为邻接点。...(或者直接手写 8 个坐标偏移) 判断可能位置是否合法(没有超出边界且该位置还没有被遍历过) 递归,回溯,直到找出解 这一步还可以用贪心算法优化: 我们要走下一步位置,可选下一步位置数(记为权重...若一个未被遍历过顶点( 白色顶点多条 紫色 相连,则只保留权值最小 紫色 ,其余 紫色 弃掉 4. 将 紫色 中权值最小那条涂为 红色 ,与其相连顶点连入生成树 5.

1.9K20

3小时入门Spark之Graphx

1,图组成 图基本组成是顶点(vertex)和(edge). 2,图分类 有向图和无向图:根据是否有方向,图可以分成为有向图和无向图。有向图从源顶点出发,指向目标顶点。...多重图和伪图:如果两个顶点之间可以有多条平行,称为多重图。如果存在自环,即由一个顶点指向自己,则称为伪图。Graphx图都是伪图。...属性图和非属性图:如果顶点是包括属性,称为属性图,否则是非属性图。非属性图作用不大。通常顶点至少有一个是包括属性,Graphx图都是属性图。...2,图视图 edges和vertices必须包括属性,如果没有,一般给每个顶点填充一个1作为属性。 可以从triplets中同时获取属性,以及之关联顶点属性。 ?...3,半监督学习 基于K近邻图标签传播算法:可以利用图结构,将少量顶点标签传递到其近邻未知标签顶点上(可以按照权重倒数作概率加权)。

4.6K32

数据结构算法-图存储结构

带权图(网)邻接矩阵 设G=(V,E)是n个顶点图,则G邻接矩阵用n阶方阵G表示,若(Vi ,Vj )或 属于 E(G),则G[i][j]为或弧权Wij,否则ViVj间无边或弧...邻接表定义 邻接表是顺序存储链式存储相结合存储方法。 在邻接表中,对图中每个顶点建立一个单链表,每个单链表中链接图中顶点相邻接所有顶点。...邻接表中每个单链表含有不等个数表结点,表结点含有两或三个域,一个是adjvex,存放顶点相邻接顶点序号,另一个是nextarc,指向顶点下一个邻接点,带权图表结点形式还会多一个weight...以下是带权重无向图表现形式。 ? 以下是带权重有向图表现形式。 ? 5....// 顶点编号 int vertex; // 指向第一条指针 ArcNode *firstarc; }AdjList[vnum]; Typedef struct

1.3K30

为实习准备数据结构(11)-- 图论算法 集锦

所谓一个连通图生成树是一个极小连通子图, 含有图中全部n 个顶点,但只有足以构成一棵树n-1条。...从这里也可知道,如果一个图有n 个顶点和小子n-1条,则是非连通图,如果多于n-1 条,必定构成一个环, 因为这条使得依附那两个顶点之间有了第二条路径。...有两种主要方法:邻接列表和邻接矩阵。 在邻接列表实现中,每一个顶点会存储一个从这里开始列表。...例如,如果从顶点A到顶点B有一条权重为 5.6 ,那么矩阵中第A行第B列位置元素值应该是5.6: 邻接列表只描述了指向外部。...= m) /* 假如nm不等,说明此没有现有的生成树形成环路 */ { parent[n] = m; /* 将此结尾顶点放入下标为起点parent中。

51020

社交网络分析 R 基础:(五)图导入简单分析

如何将存储在磁盘上邻接矩阵输入到 R 程序中,是进行社交网络分析起点。在前面的章节中已经介绍了基本数据结构以及代码结构,本章将会面对一个实质性问题,学习如何导入一个图以及计算图一些属性。...以最简单无权无向图为例,邻接矩阵中第 行第 列元素 如果等于 1,则表示顶点顶点 之间有边,即邻接矩阵将所有节点之间关系都表示出来。...邻接表则是对顶点 建立一个单链表,这个单链表由顶点 所有邻居节点构成,即邻接表只是把存在关系节点表示出来。 网络上许多公开数据集更常使用三元组去表示一个图。...下面是一个三元组示例,以第一行三元组 (1, 2, 1) 为例,表示有一条从顶点 1 指向顶点 2 ,并且该权重为 1。对于无权图而言,通常会省略三元组中第三个元素。...Dolphins 是一个无权无向真实网络,描述了生活在新西兰一个峡湾附近宽吻海豚社区,其中节点表示海豚,表示海豚间社会关系。将数据集下载完成后,打开名为 out 文件。

2.5K10

每周学点大数据 | No.14 图论基础回顾

在无向图中,每一条都是双向可达,如果有边(u,v)存在的话,那么u是v邻居,v也是u邻居。u直接相连数量,叫作u度数。...而在有向图中则不然,每一条都是有方向,也就是说,(u,v)这条表示是从u指向v一条;而(v,u)这条表示是从v指向u一条。它们都是单向可达。...在加权图中,有的是加权,也就是说,不仅仅是一条,在上面有一个权重,这个权重也可以叫作长度,在不加权图中,我们一般认为长度为1。还有的是图顶点具有一个权值。...小可若有所思,说:如果u本身有一条指向自己,就是有一个圈,这样也是回路吗? Mr. 王:虽然没有经过任何一个其他顶点,但是中间经过了一条,它也是一条回路。...在无向图中,如果图中每对顶点都互相可达,我们才能认为它是“连通”,称作强连通图。 小可:的确,相互可达才能达到我们判定连通这个目的。 Mr.

85280

ECCV 2020 | 爱奇艺提出BC-GNN:用于时序动作提名生成任务融合边界内容图神经网络

研究者构建边界内容图是一个二分图,二分图是一类特殊图,顶点由两个独立集 U 和 V 组成,并且所有的都是连结一个 U 中点和一个 V 中点。...其中σ表示激活函数 ReLU,θs2e 和θe2s 代表不同可训练参数,× 代表矩阵相乘,∗ 代表 element-wise 相乘。...节点特征更新步骤旨在聚合及其相邻节点属性,更新过程如下所示: ? ? 其中 e_(h,t)表示从头结点 h 指向尾节点 t 对应特征,K 表示以 h 为头节点总数。...为了避免输出特征数值规模增加,研究者在更新节点特征前先对对应特征进行归一化,之后再把更新后特征作为相应头结点特征权重。σ表示激活函数 ReLU,θ_node 代表可训练参数。...输出模块 如 BC-GNN 整体框架图所示,候选 proposal 由一对节点连接产生,并且其起始点、结束点和内容置信度分别基于更新后节点特征和特征生成,具体过程如下所示: ?

68020

数据结构算法(十二)——图结构初探

2,各种图定义 (1)无向图 & 无向 如上图所示,顶点A顶点C之间没有箭头指示方向,也就是说,可以由顶点A到顶点C,也可以由顶点C到顶点A,这样就是无向。...由无向连接而成图称为无向图。 (2)有向图 & 有向 如上图所示,顶点A顶点C之间连接是有方向,只能由顶点C到顶点A,我们称这样为有向。 由有向连接而成图称为有向图。...(5)网 如果在一个图中,顶点顶点之间对应还有一个代表权值数字,那么这样图结构称为网。...顶点顶点之间信息是通过一个单链表(上图红色区域)来记载,邻接表元素中指针域指向就是单链表首元结点。...还有一点需要注意是,如果某一个顶点没有边,那么在邻接表中,该顶点对应元素指针域需要置空。 3,网存储 带权重图称为网。 网顶点顶点逻辑一样,是不需要改动

64220

数据结构–最小生成树详解

2、普里姆算法—Prim算法 算法思路: 首先就是从图中一个起点a开始,把a加入U集合,然后,寻找从a有关联中,权重最小那条并且该终点b在顶点集合:(V-U)中,我们也把b加入到集合...U中,并且输出(a,b)信息,这样我们集合U就有:{a,b},然后,我们寻找a关联和b关联中,权重最小那条并且该终点在集合:(V-U)中,我们把c加入到集合U中,并且输出对应那条信息...> #include using namespace std; //表结点 struct ArcNode { int adjvex; //某条指向那个顶点位置(一般是数组下标...ArcNode * next; //指向下一个表结点 int weight; //权重 }; //头结点 struct Vnode { ArcNode * firstarc; //第一个和该顶点依附...但是了,我们即将介绍克鲁斯卡算法恰恰相反,时间复杂度为:O(eloge),其中e为条数,因此相对Prim算法而言,更适用于稀疏网。

64540
领券