关于矢量图形,搞算法的同志不可不看!

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
  • 打赏
  • 举报
回复
看不懂,说明应该详细一些……
掌握分布式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 使用一种共同一致的方法来处理集群成员变换的问

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧