社区
数据结构与算法
帖子详情
关于矢量图形,搞算法的同志不可不看!
geofee
2000-03-22 04:31:00
如何用四叉树结构来操纵(存储、删除、增加、查询)矢量图形。
...全文
699
16
打赏
收藏
关于矢量图形,搞算法的同志不可不看!
如何用四叉树结构来操纵(存储、删除、增加、查询)矢量图形。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
vcbeginner
2000-08-17
打赏
举报
回复
为何不用十字连表,类似棋盘的东西?
费弘斌
2000-08-10
打赏
举报
回复
look at my page:
http://vistweb.com/vcl
geofee
2000-06-16
打赏
举报
回复
由于前一段时间上 CSDN 速度很慢,因此一直没有看过列位的讨论。很是抱歉!
在矢量四叉树这个问题上在国外讨论的很多,尤其是在大学当中。由此我感觉
我们应该多进行一些算法的讨论。
这一段我找到了一些资源:
http://www-sop.inria.fr/robotvis/projects/iue/spec/spatial-index/
是一个讨论空间数据索引的地方。
http://www.cs.umd.edu/~brabec/quadtree/index.html
是一个讨论矢量四叉树的地方。
希望与大家分享。
lange网友的回答我感到比较感动,也很正确。
对于空间数据索引来说,如果数据量在20M内,目标数在100000内的确没有必要用
四叉树。一般的二维栅格索引就可以。如果只是1~ 2M数据就没有必要讨论空间数
据索引,反正现在机器速度快。
矢量四叉树数据存取实际是我想将海量的数据按照类似于“金字塔”形状进行存取
(来源于图像的“金字塔”存取)
实际上和lange网友说的一样,我是采用二维栅格索引+四叉树索引进行的。对于“飞点”
情况,在实际当中有数据 CheckIn 检查。数据由经纬网格来进行控制。所有数据均有
地图投影。
ad
2000-06-14
打赏
举报
回复
如果仅是存储、删除、增加、查询这些操作应该没那么复杂,用四叉树有什么好处?我关心的是各种图形元素的显示,因为有些复杂元素在显示时的计算相当复杂。我的程序显示了AutoCAD绘制的图形(转换成dxf格式),但那些复杂的元素我不予支持,比如带弧段的多义线、带控制点的曲线等,因为我还没有时间去做那些研究!
sxldl
2000-05-31
打赏
举报
回复
采用OOP,处理矢量的四叉树与普通的四叉树无异,
lange
2000-05-19
打赏
举报
回复
四叉树索引理论上是个好东西,
但在实际的生产中就不是那么回事了,
特别是在有飞点的情况下(就是离正常的数据区域很远很远的地方出现的错误点位,实际生产中经常会出现),
会耗光你所有内存,还会把你递归死!
如果你做的东西是要提供生产用的话,忠告你别随便选用四叉树,
如果是写论文,那确是个好课题。
实际上四叉树在一个确定范围内,效率是相当不错的。
如果把二维索引和四叉树索引分级利用,恐怕会有更佳效果。
继续探讨,不要放弃!!!
sanhan
2000-05-17
打赏
举报
回复
矢量图形用四叉树可能不是特别合适。
如果一定要这样做的话,仿照位图的四叉树表示(当然要改了)有可能...
或者使用 分区+矢量 表示。
简单的分区方法实际上很有效。
always
2000-05-17
打赏
举报
回复
如果我能,我一定会回答你,我也一直希望能多有一些这方面的探讨.
geofee
2000-04-28
打赏
举报
回复
我不知道是否可以删除我提出的问题,因为问题一直很少有人来答。
我一直希望搞过GIS和CAD底层开发的人来探讨一下这个问题。
但我发现圈内的人不是很有时间来替人探讨问题
关于这个问题的难度我认为可以作一篇硕士论文。当然,喜欢搞搞名词级论文的研究生或者真正的研究生是看不起这样的题目的。
但愿我能删除此问题。
OpenBall
2000-04-24
打赏
举报
回复
Really?
ifthen
2000-04-14
打赏
举报
回复
GIS业内人士高喊"世界上80%的信息与空间有关...",从这个问题的反馈来看,他们的市场
还有待未来.
mhuang
2000-04-04
打赏
举报
回复
问题没有表述清楚,或者我太差
wilson2000
2000-03-30
打赏
举报
回复
为十么在矢量图中,搞四叉树,用在何处?
wilson2000
2000-03-30
打赏
举报
回复
递归遍历树不行么?
geofee
2000-03-24
打赏
举报
回复
你先得很熟悉计算机图形算法!
jll
2000-03-23
打赏
举报
回复
看不懂,说明应该详细一些……
go分布式mapreduce与raft
算法
与分布式数据库
掌握分布式mapreduce与raft
算法
与分布式数据库MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。概念Map(映射)和Reduce(归约),是它们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。它极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。 当前的软件实现是指定一个Map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce(归约)函数,用来保证所有映射的键值对中的每一个共享相同的键组。MapReduce是面向大数据并行处理的计算模型、框架和平台,它隐含了以下三层含义:1)MapReduce是一个基于集群的高性能并行计算平台(Cluster Infrastructure)。它允许用市场上普通的商用服务器构成一个包含数十、数百至数千个节点的分布和并行计算集群。2)MapReduce是一个并行计算与运行软件框架(Software Framework)。它提供了一个庞大但设计精良的并行计算软件框架,能自动完成计算任务的并行化处理,自动划分计算数据和计算任务,在集群节点上自动分配和执行任务以及收集计算结果,将数据分布存储、数据通信、容错处理等并行计算涉及到的很多系统底层的复杂细节交由系统负责处理,大大减少了软件开发人员的负担。3)MapReduce是一个并行程序设计模型与方法(Programming Model & Methodology)。它借助于函数式程序设计语言Lisp的设计思想,提供了一种简便的并行程序设计方法,用Map和Reduce两个函数编程实现基本的并行计算任务,提供了抽象的操作和并行编程接口,以简单方便地完成大规模数据的编程和计算处理Raft 是一种为了管理复制日志的一致性
算法
。它提供了和 Paxos
算法
相同的功能和性能,但是它的
算法
结构和 Paxos 不同,使得 Raft
算法
更加容易理解并且更容易构建实际的系统。为了提升可理解性,Raft 将一致性
算法
分解成了几个关键模块,例如leader人选举、日志复制和安全性。同时它通过实施一个更强的一致性来减少需要考虑的状态的数量。从一个用户研究的结果可以证明,对于学生而言,Raft
算法
比 Paxos
算法
更加容易学习。Raft
算法
还包括一个新的机制来允许集群成员的动态改变,它利用重叠的大多数来保证安全性。 一致性
算法
允许一组机器像一个整体一样工作,即使其中一些机器出现故障也能够继续工作下去。正因为如此,一致性
算法
在构建可信赖的大规模软件系统中扮演着重要的角色。在过去的 10 年里,Paxos
算法
统治着一致性
算法
这一领域:绝大多数的实现都是基于 Paxos 或者受其影响。同时 Paxos 也成为了教学领域里讲解一致性问题时的示例。 但是不幸的是,尽管有很多工作都在尝试降低它的复杂性,但是 Paxos
算法
依然十分难以理解。并且,Paxos 自身的
算法
结构需要进行大幅的修改才能够应用到实际的系统中。这些都导致了工业界和学术界都对 Paxos
算法
感到十分头疼。 和 Paxos
算法
进行过努力之后,我们开始寻找一种新的一致性
算法
,可以为构建实际的系统和教学提供更好的基础。我们的做法是不寻常的,我们的首要目标是可理解性:我们是否可以在实际系统中定义一个一致性
算法
,并且能够比 Paxos
算法
以一种更加容易的方式来学习。此外,我们希望该
算法
方便系统构建者的直觉的发展。不仅一个
算法
能够工作很重要,而且能够显而易见的知道为什么能工作也很重要。 Raft 一致性
算法
就是这些工作的结果。在设计 Raft
算法
的时候,我们使用一些特别的技巧来提升它的可理解性,包括
算法
分解(Raft 主要被分成了leader人选举,日志复制和安全三个模块)和减少状态机的状态(相对于 Paxos,Raft 减少了非确定性和服务器互相处于非一致性的方式)。一份针对两所大学 43 个学生的研究表明 Raft 明显比 Paxos
算法
更加容易理解。在这些学生同时学习了这两种
算法
之后,和 Paxos 比起来,其中 33 个学生能够回答有关于 Raft 的问题。 Raft
算法
在许多方面和现有的一致性
算法
都很相似(主要是 Oki 和 Liskov 的 Viewstamped Replication),但是它也有一些独特的特性: 强leader:和其他一致性
算法
相比,Raft 使用一种更强的leader能力
形
式。比如,日志条目只从leader发送给其他的服务器。这种方式简化了对复制日志的管理并且使得 Raft
算法
更加易于理解。leader选举:Raft
算法
使用一个随机计时器来选举leader。这种方式只是在任何一致性
算法
都必须实现的心跳机制上增加了一点机制。在解决冲突的时候会更加简单快捷。成员关系调整:Raft 使用一种共同一致的方法来处理集群成员变换的问
矢量图
形
绘制
算法
相关
矢量图
形
的绘制归根结底是任意多边
形
的绘制。 比如一个填充圆,就是取圆上许多的点依次连接并填充内部构成的图
形
,虽然人肉眼看到的还是"圆"
形
,但它却是实实在在的多边
形
构造的。 再比如说直线,其实也就是4边
形
,只不过它是一个又窄又长的内部被填充的4边
形
。 任意多边
形
是如何
路由
算法
之距离矢量
算法
和链路状态
算法
我们之前说了,路由器需要对于每一对端端节点都要寻找出一个最佳的路径,比如说最小链路成本的路径。路由
算法
就是通过自己到相邻节点之间的信息来计算出自己到目的地址的最佳出境线路是哪一条,进而进行转发的一类
算法
。具有代表性的就是距离矢量
算法
和链路状态
算法
。 距离矢量
算法
的特点是: 1.分布的 每个节点接收来自与其直接邻接节点的路由信息,并执行路由计算,将计算结果回传给
距离矢量路由
算法
现代计算机网络通常使用动态路由
算法
,因为这类
算法
能够适应网络的拓扑和流量变化,其中最流行的两种动态路由
算法
是“距离矢量路由
算法
”和“链路状态路由
算法
”。 距离矢量路由
算法
(Distance Vector Routing,DV)是ARPANET网络上最早使用的路由
算法
,也称Bellman-Ford路由
算法
和Ford-Fulkerson
算法
,主要在RIP(Route Inform
C++
矢量图
形
库系列(1)——
矢量图
形
库乱谈
本系列篇章的主要内容是讲解
矢量图
形
库的编译、开发和使用。并不对他们周边的内容做过多的描述,如性能对比等。本人博客所有文章全部都是个人原创,并保留一切权利。不是原创的内容本人一定会注明“转载”字样。所以如果您需要转载,请注明来源,谢谢。
矢量图
形
,这是一个非常熟悉但是又让人觉得陌生的东西。熟悉是因为听得太多了,Flash就大量应用了
矢量图
形
技术,得以让一段完整的动画文件体积相
数据结构与算法
33,008
社区成员
35,326
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章