CN102279874B - 用于交互制图的快速边路由 - Google Patents

用于交互制图的快速边路由 Download PDF

Info

Publication number
CN102279874B
CN102279874B CN201110170746.3A CN201110170746A CN102279874B CN 102279874 B CN102279874 B CN 102279874B CN 201110170746 A CN201110170746 A CN 201110170746A CN 102279874 B CN102279874 B CN 102279874B
Authority
CN
China
Prior art keywords
node
tree
visual
route
layout
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201110170746.3A
Other languages
English (en)
Other versions
CN102279874A (zh
Inventor
T·G·杜耶
L·纳克曼松
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN102279874A publication Critical patent/CN102279874A/zh
Application granted granted Critical
Publication of CN102279874B publication Critical patent/CN102279874B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/206Drawing of charts or graphs

Abstract

一种用于交互制图的快速边路由的方法和系统。此处描述了使用空间分解来获得更快速路由并采用锥形生成器来更快生成稀疏可视性图的边路由系统。该系统提供使用近似最短路径的两种可单独或结合使用的方法来实现更快并由此更可伸缩和更具有交互性的边路由。第一种方法使用对图中节点的空间分解,稍微移动它们以得到围绕各组节点的严格脱节的凸壳,然后在这些合成壳而不是诸单个节点上计算可视性图。第二种方法生成一个稀疏的可视性图生成器来加速生成可视性图的过程。对于交互式制图应用程序中的大型图,该系统允许高品质的避障的边路由,在该交互式制图应用中采用了非常快的路由刷新并伴有许多节点同时移动。

Description

用于交互制图的快速边路由
技术领域
本发明涉及交互式制图,具体地涉及使用空间分解来获得更快速路由并采用锥形生成器来更快生成稀疏可视性图的边路由系统。
背景技术
人们用来可视化各种概念的大多数网络图示(图)具有与文字或图形内容相关联的节点。例如,在统一建模语言(UML)类图示中,节点被绘成为具有描述类属性或方法的文本内容的框。作为另一个示例,在代谢途径图示中,表示化学成分的节点具有分子结构的较长的文本标签或图形表示。
路由是指连接符所采取来连接节点的路径。如果没有直接连接到一特定节点的边(连接符)被绘制在该节点上方,则标签可能被遮蔽。或者,如果边被绘制在节点后面,则读者可能会错误地假定存在着到该节点的连接。围绕节点来路由边避免了这种模糊性。因此,为了自动生成高质量的网络示图绘画,寻找不与节点边界交叉的边的路由是重要的。
最近在该领域的工作涉及寻找正切可视性图中的最短路径。然而,构造完整的正切可视性图在计算上开销很大,至少是节点数的二次方。这使得这种现有的正切可视性图路由方案对于涉及具有成百或成千的节点的大型图的交互式制图应用程序来说是不可行的。一些布局算法,诸如用于有向图的层级方案或用于正交图绘制的拓扑—形状—度量方法,将边路由认为是布局过程中的不可或缺的一步。然而,针对普通无向图的流行的力指向系列布局算法通常不考虑围绕节点壳来路由边(除非是可能作为后处理步骤)。最近的工作提出了力指向的方法,该方法能够维持具有给定边路由的拓扑结构,但仍能采用标准的路由算法发现可行的初始路由。对于有几百个节点的图,构造可视性图的(节点数)二次方或更坏的计算开销会过于缓慢,尤其是对于随着一次次迭代而使布局发生显著变化的交互应用而言。
发明内容
此处描述了使用空间分解来获得更快速路由并采用锥形生成器(conespanner)来更快生成稀疏可视性图的边路由系统。该系统提供使用近似最短路径的两种可单独或结合使用的方法,来实现更快、并由此更可伸缩和更具有交互性的边路由。第一种方法使用对图中节点的空间分解,稍微移动它们以得到围绕各组节点的严格脱节的凸壳,然后在这些合成壳而不是诸单个节点上计算可视性图。第二种方法生成一个稀疏的可视性图生成器来加速生成可视性图的过程。这两种技术是互补的,即它们可以一起使用以获得更快的路由。对于大型图(有数百或上千个节点)或交互式制图应用程序,该系统允许高品质的避障的边路由,在该交互式制图应用程序中,采用了非常快的路由刷新并伴有许多节点同时移动。
提供本发明内容是为了以简化的形式介绍将在以下详细描述中进一步描述的一些概念。本发明内容并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于限定所要求保护的主题的范围。
附图说明
图1是示出一实施例中的边路由系统的组件的框图。
图2是示出一实施例中的边路由系统的用来执行针对图的快速边路由的处理的流程图。
图3是示出一实施例中的边路由系统的用来执行空间分解以简化针对图的路由任务的处理的流程图。
图4是示出一实施例中的边路由系统的用来在一组节点上生成可视性图的处理的流程图。
图5是示出一实施例中的通过被分组成复杂壳的节点和对应的KD树的边路由的框图。
图6是示出一实施例中的在锥形生成期间由一次扫掠而产生的边。
图7更详细地示出一实施例中的扫掠迹线(sweepline)事件的类型。
图8示出一实施例中的锥形结束事件和缺失的断开侧。
具体实施方式
此处描述了使用空间分解来获得更快速路由并采用锥形生成器来更快生成稀疏可视性图的边路由系统。该系统提供使用近似最短路径的两种可单独或结合使用的方法,来实现更快并由此更可伸缩和更具有交互性的边路由。第一种方法使用对图中节点的空间分解,稍微移动它们以得到围绕各组节点的严格脱节的凸壳,然后在这些合成壳而不是诸单个节点上计算可视性图。第二种方法生成一个稀疏的可视性图生成器来加速生成可视性图的过程。这两种技术是互补的,即它们可以一起使用,以获得更快的路由。在此之前,并没有考虑采用高品质的避障的边路由以用于大型图(有数百或上千个节点)或用于交互式制图应用程序,在该交互式制图应用程序中,采用了非常快的路由刷新并伴有许多节点同时移动。
为了产生具有按形状绘出的节点的图的高质量绘画,寻找与节点边界不交叉的边的路由是有帮助的。最近在该领域的工作涉及寻找正切可视性图(tangent-visibilitygraph)中的最短路径。然而,构造完整的正切可视性图在计算上开销很大,至少是节点数的二次方。本边路由系统显著地增加了对边进行路由的速度以及生成可视性图的速度,使得动态路由对于更大型的图来说是可行的。用来获得对边/连接符的更快速路由的空间分解方法在之前并没有被应用于制图应用程序。另外,该系统利用了节点可以被稍微移动(即,以图的布局不会被显著改变的方式)以允许更有效的空间分解和路由这一想法。最后,该系统采用了可视性图的锥形生成器来获得在制图应用程序中的更快路由。因此,该系统与之前的技术相比对边的路由要快得多,同时产生非常接近一更长的最优的路由解决方案的可视性图。
先前的路由方案中的开销最大的部分是在具有凸边界的n个节点上的正切可视性图的O(n2logn)构造。该边路由系统通过首先简化图来降低复杂度,其中路由采用空间划分方案在该图上发生。该系统将诸组节点(特别是远离正被路由的边的末端节点的那些节点)替换为它们的凸壳,由此减少了在构造可视性图中要考虑的障碍物数量。
该系统获得了对节点的递归空间划分,使得在每个分区中的节点的凸壳不与在该分区分层结构中的它们的兄弟分区重叠。这样做的一种方法是采用KD树数据结构。该系统自下而上处理KD树,建立每个内部节点的凸壳,并对于该树中的每对兄弟节点,将它们移开以消除它们的凸壳之间的重叠。轻微的移动可在不会显著改变图的可视外观的情况下使路由更容易。对于每一对KD树叶节点而言,该系统仅在该叶节点和这些叶节点的祖先的最高层级的兄弟节点的节点边界上建立最小可视性图。
为了快速地生成实际的可视性图,该系统使用通过采用锥形扇面来建立的所谓的Yao图。在一障碍物的每个顶点构造锥形扇面,并且对于每个锥形仅选择可视性图的一条边。所得到的生成器图是非常稀疏的(包含极少数的边),然而,尽管图很稀疏,但可以选择一个角度α,使得对于完整的可视性图中的每个最短路径而言,生成器中的对应的最短路径的长度最多是前者长度的1+ε倍。该系统采用直接的方法而不是采用先构造一个锥形维诺图(Voronoidiagram)的先前方法来构造生成器图。
图1是示出一实施例中的边路由系统的组件的框图。该系统100包括布局输入组件110、树建立组件120、壳建立组件130、节点移动组件140、可视性图组件150、路由输出组件160、以及呈现组件170。此处更详细地描述了这些组件中的每一个。
布局输入组件110接收用于为其计划图中连接节点的边的路由的布局。可通过用户在用户界面中操纵节点或通过由其它组件对节点的自动处理来产生布局。边路由系统100始于采用任何布局算法获得的节点的起始配置。例如,一常见布局算法是快速力指向方法。由于可通过系统100来移除重叠部分,因此节点的边界框在一开始可以重叠。当接收到布局时,系统100调用KD树建立组件120来为初始节点位置建立KD树结构。
树建立组件120建立描述了该布局中的节点之间的关系的树数据结构。系统100可以采用的树的一种类型是KD树。KD树通过进行一系列二进制分裂来划分空间。例如,给定点的任意排布,可通过首先将该排布沿中间(垂直或水平)分裂,然后将落入到一侧的每个点放置到树的一半中并将落入到另一侧的所有点放置到树的另一半中来生成KD树。然后,可对由此产生的各半部分进行分裂,直到点被适当地划分(例如,直到每个分区最多包含期望的阈值数目的节点)。该组件可以使用各种试探法来确定将分区置于何处。一种方法是使用在按x或y坐标排序的节点列表中的中间元素。使用中间元素会产生平衡树,它对降低路由任务的整体复杂度而言往往有用的。
壳建立组件130将节点编组,使得对可视性图的构造可以考虑各个组,而不是考虑诸单个节点,以便产生较少的障碍物。在一些实施例中,组件130将诸组节点替换为它们的凸壳,从而减少了在构造可视性图时所考虑的障碍物的数目。该系统100自下而上处理KD树,建立每个内部节点的凸壳,并为该树中的每对兄弟节点建立凸壳。在某些实施例中,壳建立组件130调用节点移动组件140以将节点移动得稍微分开一点,以便移除凸壳之间的任何重叠。
节点移动组件140移动图中的节点来移除由壳建立组件130生成的各组之间的重叠。轻微的移动可在不会显著改变图的可视外观的情况下使路由更容易。节点移动组件140可采用设定了节点能运动到多远的上限的移动阈值。用户可能不希望图的可视布局被显著修改,所以组件140尝试保持轻微的移动来简化路由任务,而不会过度改变布局的外观。然而,即使轻微的节点移动也可对创建节点组的能力产生很大影响。
可视性图组件150在剩余的节点和节点组上产生可视性图。对于每一对KD树叶节点,该系统100仅在该叶节点和这些叶节点的祖先的最高层级的兄弟节点的节点边界上建立最小可视性图。为了快速生成实际的可视性图,该系统100使用通过采用锥形扇面来建立的所谓的Yao图,如下文将详细描述的。在一障碍物的每个顶点构造锥形扇面,并且对于每个锥形,仅选择可视性图的一条边。所得到的生成器图是非常稀疏的(包含极少数的边),然而,尽管图很稀疏,但可以选择一个角度α,使得对于完整的可视性图中的每个最短路径而言,生成器中的对应的最短路径的长度最多是前者长度的1+ε倍。该系统采用直接的方法而不是采用先构造一个锥形维诺图的先前方法来构造生成器图。
路由输出组件160向呈示器提供所得到的可视性图以向用户显示路由过程的可视输出。系统100可以被实现为可被现有的制图应用程序调用的单独的组件(例如,微软TM.NET类)。作为替换或补充,该系统100可被构建成执行快速边路由的制图应用程序。系统100接收作为输入的节点布局,并产生一个作为输出的可视性图。可以是或不是系统100的一部分的呈现组件170组件可以使用可视性图在屏幕上或其它呈现表面(如,印刷视图)上绘制节点和边的适当视觉表示。
一旦完成路由后,呈现组件170就呈现图的节点和边。呈现组件170可根据由此处所描述的处理所确定的路径来显示包含每个节点以及节点之间的连接(边)的画布。呈现组件170可包括用于与用户进行交互的控件,使用户可以移动节点、建立和删除连接、并进行其它图编辑。每次改变时,呈现组件170可调用系统100以更新边路由。这产生一个动态的、交互式的显示画面,用户可以操纵该显示画面,并且用户可使用该显示画面来快速阅览改变的结果。随着节点数变大(例如,数百或更多的节点),先前的系统所进行的路由不足够快来允许这种类型的交互。
在其上实现边路由系统的计算设备可包括中央处理单元、存储器、输入设备(例如,键盘和定点设备)、输出设备(例如,显示设备)和存储设备(例如,盘驱动器或其它非易失性存储介质)。存储器和存储设备是可以用实现或允许该系统的计算机可执行指令(例如,软件)来编码的计算机可读存储介质。另外,数据结构和消息结构可以被存储或通过诸如通信链路上的信号之类的数据传输介质传输。可以使用各种通信链路,如因特网、局域网、广域网、点对点拨号连接、蜂窝电话网络等等。
系统的各实施例可以在各种操作环境中实现,操作环境包括个人计算机、服务器计算机、手持式或膝上型设备、多处理器系统、基于微处理器的系统、可编程消费电子产品、数码相机、网络PC、小型计算机、大型计算机、包括任意上述系统或设备中的分布式计算机环境、机顶盒、片上系统(SOC)等。计算机系统可以是蜂窝电话、个人数字助理、智能电话、个人计算机、可编程消费电子产品、数码相机等等。
可以在由一台或多台计算机或其他设备执行的诸如程序模块之类的计算机可执行的指令的一般上下文中来描述本系统。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。通常,程序模块的功能可以按需在各个实施例中进行组合或分布。
图2是示出一实施例中的边路由系统的用来执行针对图的快速边路由的处理的流程图。以框210开始,系统接收要对其各边进行路由以避开各节点的节点布局。例如,系统可接收来自正进行边路由以在用户界面中向用户显示的制图应用程序的布局。该应用程序可按各种不同的数据结构,例如表,向系统提供节点。节点可具有任意形状的边界,并可通过自动布局算法或用户手动来放置。
继续至框220,该系统在所接收到的节点布局上进行空间分解,以减少对每个连接的节点对之间进行路由期间内所需要考虑的障碍物的数量。参考图3进一步描述这一过程。继续至框230,系统基于减少的障碍物数产生可视性图。该可视性图标识障碍物所在位置,并指定边可以或不可以被路由以保持可见的区域。参考图4进一步描述这一过程。继续至框240,系统根据所产生的可视性图来路由边,以避开节点。路由将边放在不与任何节点边界交叉并且近似通过该图的最短路径的路径中。该系统使用锥形生成来降低产生可视性图的计算复杂度,从而提供了一种更快但可能更近似(取决于所选的锥形角度)的解决方案。
继续到框250,该系统提供路由输出以供呈现。例如,该系统可响应于对其中实现了该系统的模块的调用来提供数据结构,其中该数据结构指定所确定的边路由。继续至框260,系统基于节点布局以及所确定的边路由来呈现图。例如,系统可在制图应用程序的用户界面中向用户显示节点和边。在框260之后,这些步骤结束。
图3是示出一实施例中的边路由系统的用来执行空间分解以简化针对图的路由任务的处理的流程图。以框310开始,系统创建一棵树,该树容纳所接收到的图布局中的每个节点。该树可包括基于按坐标对节点的二元划分来将节点划分成一个或多个分区的KD树。在某些实施例中,该系统存储按每个维度中的坐标来排序的节点列表,并选择经排序的列表内的中间节点作为划分剩余节点的坐标。由此产生的KD树是平衡的,并基于节点在图中的位置提供一个或多个节点分组。
继续至框320,该系统可任选地移动节点以消除节点形状之间的重叠。虽然经常被作为点来处理,但各节点仍可具有可能会相互重叠的任意形状,即使各节点中心具有合理地距离。该系统移动节点,以确保没有两个节点具有重叠边界,从而使各组节点的凸壳不会重叠。非重叠边界简化了路由过程。该系统可按自下而上遍历KD树的方式处理节点以确定重叠。
继续至框330,系统基于所创建的树中的一个或多个节点组来计算一个或多个凸壳。凸壳提供了一个更大的虚拟节点,可利用该虚拟节点而不是原始的单个节点来进行路由。该系统以自下而上的方式处理每个KD树节点,以计算围绕在作为组成部分的子节点的边界周围的凸壳。结果是脱节和嵌套的凸壳的经平衡的分层结构,该系统可使用该分层结构来简化任意两个给定节点之间的路由。继续至框340,系统选择用于树中的每对叶节点之间的路由的凸壳。结果是可视性图障碍物的最小集合,该集合包括该对叶节点之间的节点的一个或多个复杂壳以及包含在与该对叶节点相同的分支内并由此不位于凸壳中的任何后代节点。使用凸壳可以将绕其进行路由的障碍物的数量减少多个数量级,从而加快了路由过程。
继续至框350,系统基于所选凸壳选择路径,以在连接的每个节点对之间遍历该图。所选凸壳指定通过其在两个节点之间对边进行路由的路径,并且,此处所描述的可视性图细化了边的路径以防止与任何障碍物交叉。继续至框360,系统输出所选路径,以生成可视性图以便确定每个边的最终路由。系统可使用各种生成可视性图的方法,诸如参考图4来描述的补充过程。在框360之后,这些步骤结束。
图4是示出一实施例中的边路由系统的用来在一组节点上生成可视性图的处理的流程图。从框410开始,系统接收图说明书,该图说明书包括将在其间对连接进行路由的至少一对节点以及将图中的其它节点分组成复合障碍物的一个或多个凸壳。系统计算避开了复杂壳并连接该对节点的可视性图。系统可将凸壳组作为KD树来接收,参考图3的进一步描述。
继续至框420,系统接收锥形角,其中跨过该锥形角来扫掠锥形以标识边界和障碍物以供生成可视性图。所选锥形角是路由精确度(例如,找到最优最短路径)和计算复杂度的折中。较大的角度将减少在搜索上所花的时间,但将产生精确度较低的路径。较小的角度将允许更深入搜索以找到更佳的路径,但将增加搜索时间。在一个实验中的测试显示,采用标准正切可视性图方法,对于具有1138个节点和1458条边的大型图,使用10度角时间从95秒被减少至43秒。将角度升至45度,进一步将时间减少到34秒,但最长边的长度增加了7%。在某些实施例中,系统将锥形角作为配置参数接收,因为系统的不同应用程序会偏好路由精确度和计算时间之间的不同折中。
继续至框430,系统选择锥形扫掠方向以开始锥形生成。对于特定的接收到的锥形角α,系统将在不同方向上进行π/α迹线扫掠。扫掠被用来检测存在于各方向上的障碍物,以便系统可以选择路由方向而不与任何障碍物重叠。继续至框440,系统在所选锥形扫掠方向上搜索任何看得见的顶点。系统按迹线扫掠顺序来处理障碍物顶点,在锥形角α内搜索可视顶点。
继续至判定框450,如果系统在锥形扫掠期间中标识出了看得见的顶点,则系统继续至框460,否则系统继续至框470。继续至框460,系统创建包括所标识的看得见的顶点的边不可视性图并丢弃该锥形。在框460之后,系统在框470处继续以继续处理顶点。继续至判定框470,如果在所选锥形扫掠方向上存在更多潜在的顶点,则系统循环至框440以继续搜索顶点,否则系统继续至框480。继续至判定框480,如果存在在其上生长锥形的更多扫掠方向,则系统循环到框430来选择下一个扫掠方向,否则系统继续至框490。
继续至框490,系统输出可视性图,该图包括在锥形扫掠期间遇到的看得见的顶点中的每一个。该系统可以按一种保持边长合理短的同时避开障碍物的方式来使用可视性图以对输入图中的每个边进行路由。在框490之后,这些步骤结束。
以下章节提供边路由系统的实现的示例。本领域技术人员将从所描述的步骤中意识到在不背离此处所描述的系统的范围的情况下可产生类似结果的变型。
先前的路由方案中的开销最大的部分是在具有凸边界的n个节点上的正切可视性图的O(n2logn)构造。因此,此处的系统提供用于使用空间划分方案来在更简单的可视性图上进行路由的方案。该系统将诸组节点(特别是远离正被路由的边的末端节点的那些节点)替换为它们的凸壳,由此减少了在构造可视性图中要考虑的障碍物数量。
图5是示出一实施例中的通过被分组成复杂壳的节点和对应的KD树的边路由的框图。该图将作为接下来的讨论的背景说明。该附图包括通过节点的布局的边路由的第一可视示图510。该示图510包括要在其间绘制连接的两个节点a520和b530。该布局包括一个或多个所确定的凸壳540,这些凸壳作为围绕各组节点的阴影区域来示出。系统将凸壳540视为要绕其进行边路由的虚拟节点。所得到的边545显示了在节点a520和节点b530之间的连接,该连接不与任何单个节点或复杂壳重叠。
第二示图550示出基于第一示图510所示的节点的布局来生成的KD树数据结构。第二示图550中的字母表示:“h”-水平分裂内部节点,“v”-垂直分裂内部节点,以及“I”-KD树叶节点。KD树根据一个或多个垂直分裂来在空间上划分一组节点。从所示出的树的顶端590开始,该布局最初被水平分裂(因为该布局的高度比其宽度要大),然后垂直分裂,并依此类推,直至剩下的是叶节点a560和叶节点b570,以及在相同分支中的其它叶节点以及在其之间的凸壳,例如,凸壳580。
该系统进行对节点的递归空间划分,使得在每个分区中的节点的凸壳不与在该分区分层结构中的它们的兄弟节点凸壳重叠。更精确一点,对位于平面中的节点递归地应用空间划分产生了树结构,其中在树中的K层的每个树节点具有位于K+1层上的子节点。函数desc(T)表示在特定树节点T中所包含的所有叶节点的集合(图中的原始节点)。对于树中K层的任何树节点U,desc(U)的凸壳不与同样在K层上的任何其它树节点V(即,U的兄弟节点)的desc(V)的凸壳重叠。
为了获得合理的渐进的复杂度,系统生成平衡树。在一开始,针对节点的给定排布来获得这样的树是困难的。然而,通过允许对节点位置的略微调整,系统可随后在平衡的KD树划分中实行对兄弟节点的分离。
空间分解路由方案从采用任何布局算法(例如,快速力指向方法)获得的节点的起始布局开始。由于重叠可被除去(如下所述),因此,节点的边界框在一开始可以重叠。系统按以下来为这些起始节点位置构建KD树结构。
图5示出围绕简化的凸壳进行路由以及用来生成该路由的KD树的示例。KD树具有内部节点和叶节点,其中内部节点有两个子KD树节点,叶节点有来自我们的原始图中节点列表的两个副本,一个按x位置排序,另一个按Y位置排序。系统通过首先采用包含所有原始图节点的列表来构造单个叶节点来构建KD树。随后,系统沿适当的排序的列表中的中间元素递归地水平或垂直分裂叶节点,并插入新的内部节点以在即将形成的分层结构中作为这些新叶节点的父节点。在某些实施例中,如果叶节点中的元素的边界框的宽度比高度宽,则系统选择水平分裂,反之则选择垂直分裂,以便将叶边界框的高宽比大致保持在方形。系统继续分裂,直至叶节点均小于某任意桶大小B.最初,按x和y位置对n个图节点进行排序需要时间O(nlogn)。新的叶节点的列表的排序可通过按其父节点的顺序来复制它们来进行维持。因为通过沿中间元素进行分裂,所以树是平衡的,所以执行了O(logn)次分裂。因此,需要O(nlogn)时间来进行KD树构造。
该路由方案期望KD树中的节点不与其兄弟节点重叠。系统首先移除KD树中的每个叶节点的子节点B(即原始图中的节点)之间的重叠。存在着一些有效解决矩形边界框之间的重叠的方法。一个示例是采用基于二次方程编程的方法,因为它使得节点从它们的起始位置进行相对小的位移。
接着,系统去除内部节点的子节点的边界框之间的重叠。作为分裂的结果,每个内部节点i有两个子节点。如果分裂是水平的,则系统水平地解决重叠。即,如果水平重叠量Oh=rightSide(leftChild(i))-leftSide(rightChild(i))>0(Oh=右侧(左子节点(i))-左侧(右子节点(i))>0),则将leftChild(i)(左子节点(i))平移-oh/2,将rightChild(i)(右子节点(i))平移oh/2。如果i采用垂直分裂来构造,则系统以相同方式垂直地解决重叠。所有内部节点均按这种方式来处理,自下而上进行。由于系统移动每个(图)节点达到logn次,所以重叠去除的运行时间是O(nlogn)。
下一步是计算围绕每个内部节点的子孙节点的凸壳。同样,这是自下而上计算的。采用本领域中已知的线性时间壳合并方法在总时间O(nlogn)内计算出KD树的所有内部节点的凸壳是可能的。然而,在某些实施例中,由于边路由的总体复杂度无论如何是由对可视性图的计算来主导的,所以系统采用Graham扫描(GrahamScan)的朴素应用来在总时间O(nlog2n)内计算子壳中的点的内部节点壳。结果,hull(i)(壳(i))表示经过预计算的内部节点i的凸壳。
采用上述由不交叉的凸壳构成的KD树,系统可为特定的一对叶节点之间的所有边构造简化的可视性图。进程leaf_obstacles(叶-障碍物)返回针对KD树T中的任何两个叶节点u和v的障碍物列表。
其中sibling(i)(兄弟节点(i))返回内部节点i的兄弟节点,children(u)(子节点(u))返回作为叶节点u的子节点的原始图节点。过程leaf_obstacles返回O(logn)个障碍物壳。
为了对边进行路由,系统首先按它们末节点的KD树T中的(未排序)叶节点对来对边进行分组。对于KD树叶节点u和v之间的边的每个分组,系统在leaf_obstacles(u,v,T)上生成可视性图。这需要时间O(log2nloglogn)。
尽管系统可采用若干方法从KD树生成可视性图,一种用于大型图中的边路由的替换方法采用通过使用锥形扇面来建立的所谓的Yao图。在一障碍物的每个顶点构造锥形扇面,并且对于每个锥形,仅选择可视性图的一条边。所得到的生成器图仅包含条边,其中n是图的顶点数,α是锥形角。尽管图很稀疏,但对于每个ε>0,可以选择一个角度α,使得对于完整的可视性图中的每个最短路径而言,生成器中的相应的最短路径的长度最多是前者长度的(1+ε)倍。该系统采用直接的方法而不是先构建一个锥形维诺图来构建生成器图。
此处展示的技术是扫掠迹线算法。一个扫掠找到锥形内部的边,该锥形由内角α和指向扫掠方向的平分线构造而成。通过进行次扫掠,系统覆盖从0至π的所有可能的边方向。该算法的输入是由凸出的相互脱节的多边形障碍物组成的集合P、角度α、以及表示锥形平分线方向(扫掠方向)的向量。如果u≠v且迹线段uv不与P中的一多边形的内部区域相交叉,则顶点u可从顶点v处看见。这样的话,障碍物的相邻顶点互相之间是可见的,并且障碍物的一侧可作为可视性图的一条边。为了简明起见,以下解释进一步假定平分线与向量(0,1)相重合,并且由此扫掠迹线是水平的且处理是自下而上的。对于点a=(ax,ay)以及b=(bx,by),两者之间的锥形距离是|by-ay|。令V为P的顶点的集合。对于v∈V,采用Cv来表示顶端在v、平分线为(0,1)以及角度为α的锥形,并且采用Visv来表示来自V∩Cv的且可从v处看见的顶点的集合。对于每个v∈V且Visv≠0,该算法寻找在锥形距离上最接近v的u∈Visv,并将边(v,u)加入到生成器图中。
图6是示出一实施例中的在锥形生成期间由一次扫掠而产生的边。对于由节点和凸壳构建的每个形状610,锥形620示出在每个顶点进行的锥形扫掠。虚线630示出由一次扫掠产生的边。
该算法通过随扫掠迹线向上移动来处理事件以进行工作。事件有以下几种类型:1)位于障碍物的最左边最底部的顶点处的最低顶点;2)位于可通过按顺时针沿障碍物的边从最低顶点事件的顶点开始走到最右边最高的顶点为止来到达的顶点处的左顶点;3)位于可通过按逆时针从最低顶点事件的顶点开始走到最右边最高的顶点之前的顶点为止来到达的顶点处的右顶点;4)位于左锥形侧和障碍物的最低交叉点处的左交叉;5)位于右锥形侧和障碍物的最低交叉点处的右交叉;以及6)锥形结束,见下文。
图7更详细地示出一实施例中的各类型的扫掠迹线事件。星720是最低顶点事件,标有L的圈710和标有R的圈730(分别)是左和右顶点事件,标有L和R的菱形740是左和右交叉事件。点线750显示默认的锥形侧。虚线760示出在顶点事件处创建的断开的锥形侧。实线770示出在交叉事件处创建的断开的锥形侧。
事件被保持在优先级队列Q中,其中定位在最低y坐标处的事件具有最高优先级。对于参与到扫掠中的每个锥形,系统将指针指向其左侧和右侧。锥形侧可以是默认锥形侧,例如,始于锥形顶端与y轴成角的射线,或者,如果锥形有部分被障碍物遮蔽,则锥形侧可以是沿障碍物侧的射线,如图7所示。这种锥形侧被称为断开侧。锥形结束事件是当断开侧与同一个锥形的默认锥形侧交叉时发生的事件。对于断开侧,系统将指针指向其默认锥形侧。
图8示出一实施例中的锥形结束事件和缺失的断开侧。左图示出当断开侧与同一个锥形的默认锥形侧交叉时发生的锥形结束事件180。右图示出缺失的断开侧事件850。
在扫掠期间,系统维持一组活动锥形。顶端位于一顶点的活动锥形在顶点事件处被构造。当活动锥形完全被障碍物遮蔽时或者当在该锥形内发现可见顶点时,该活动锥形被丢弃。系统将活动锥形的左锥形侧保持在平衡树LCS中,将它们的右锥形侧保持在平衡树RCS中。处理顺序保证没有两个默认的活动左(右)侧相交。还知道的是,在树中被搜索、被插入到树或从树中移除的锥形侧与扫掠迹线交叉。这允许定义锥形侧a和b之间的以下顺序,其中x是a与扫掠迹线的交叉部分。如果x位于b的左侧,则a<b,否则,如果x位于b的右侧,则a>b。否则,如果a和b都是断开侧,则系统比较它们指向的默认锥形侧,否则系统比较断开侧和锥形侧;在LCS中,默认左锥形侧小于断开锥形侧,而在RCS中,默认右锥形侧大于断开侧。当在树中寻找元素a、插入或移除该元素时,系统仅需要将a与树中的元素进行比较。
树LCS和RCS用来寻找“看见”顶点的活动锥形。这些树的另一个功能是计算交叉事件。然而,如图8所示,包含交叉事件850的断开侧可在找到交叉之前被移除。为了解决这一问题,系统维持两个被称为LS和RS的附加平衡树。这些树的成员被称为活动障碍物部分(segment);它们是连接障碍物的两个相邻顶点的与当前扫掠迹线相交的线段。LS的成员是从最低顶点沿顺时针走到障碍物的最高点所横穿过的部分,剩余障碍物部分是RS的成员。当其低顶点被处理并被移除以及当其最高点被处理的时候,活动部分被添加至树。LS(RS)的元素被称为左(右)活动部分。部分在LS和RS中的顺序由部分和扫掠迹线的交叉点的x坐标来定义。如果一个部分的起点和终点的y坐标之差的绝对值小于某个预先设置的小正数ε,则该部分被称为几乎水平。几乎水平的部分并不包括在LS和RS中,因为它们与扫掠迹线的交叉部分并没有很好的定义,因为该系统假定扫掠迹线是水平的。由于障碍物是脱节的,所以该顺序被很好的定义。
该算法的主循环描述如下:
进程ProcessEvent(处理事件)根据事件类型进行处理。如果事件是锥形结束,则系统丢弃该锥形。然而,当在锥形内部找到可见顶点时,锥形结束事件的锥形有可能被更早丢弃。为了解决这一问题,系统将布尔标志保持与锥形相关联,并当锥形被移除时,将标志设置为真。在锥形结束事件的情况下,如果标志没有被设置,则系统移除该锥形。即,其左侧和右侧被分别从LCS和RCS中移除。
除了最低顶点的例外之外(下文将描述),由于其它事件是对称的,因此仅详细描述了事件处理程序LeftVertexEvent(左顶点事件)以及IeftIntersectionEvent(左交叉事件)。
过程FindConesSeeingEvent(找出锥形看见事件)找出“看见”e所在地点的所有锥形,创建对应的边,并丢弃锥形。
FindConesSeeingEvent(e)
b←RCS中的不在e的左侧的第一个右锥形侧
如果b存在
a←b的锥形的左侧
当a被定义且a不在e的右侧
创建从a的锥形的顶端至该顶点的边,并移除锥形
a←LCS中的a的后继者
过程CloseConesByHorizontalSegment(通过水平部分关闭锥形)处理沿顺时针走并在事件v的顶点结束的障碍物侧几乎水平的情况。它发现被部分遮蔽的所有锥形。由于此时系统已经移除了所有“看见”v或“看见”部分的起点的所有锥形,所以有一侧与该部分相交叉的每个锥形被其完全遮蔽。例如,树RCS可以按有效地方式用来找出所有这样的锥形。
在AddConeAtLeftVertex(在左顶点处添加锥形)中,系统试图创建锥形、将事件排队并向LS添加部分。令v为e的顶点,u是在该障碍物上按顺时针顺序的下一个顶点。如果u不在v的下面,则系统将u的左顶点事件排进队列。仅当锥形没有完全被障碍物遮蔽时,才在v处创建锥形。锥形的左侧是默认侧:对于这一侧,系统寻找与RS中的位于v的左边的最后部分的交叉点。如果锥形右侧是默认的锥形侧,则寻找它与LS中的位于v的右边的第一部分的交叉点。如果锥形的右侧是障碍物侧,则系统检查其与RCS中的位于v的左边的最后部分的交叉点。如果锥形被创建,则系统将新的锥形左(右)侧添加到LCS(RCS)中。如果部分[v,u]并不是几乎水平,并且指向从v开始的默认的右锥形侧的左边,则该部分被添加到LS以作为左边的活动部分。没有指向默认的右锥形侧的左边的障碍物部分没有被添加到LS中,因为没有顶端与v不同的默认的右锥形可在不首先在某个其它部分处与障碍物交叉的情况下与其交叉。
在最低顶点事件处,系统进行执行左顶点事件和右顶点事件的几乎所有工作。然而,由于最低顶点是第一个在障碍物上被检查的顶点,所以系统并不试图由与该顶点相邻的水平障碍物部分来结束锥形。当处理右顶点事件时,系统仅在当障碍物上按逆时针从事件顶点走向下一个顶点的部分不是几乎水平的情况下才将下一个右顶点事件排入队列;这样,该系统避免了两次处理障碍物的顶部顶点。
LeftIntersectionEvent(左交叉事件)按如下工作。该流程处理默认的左锥形侧和右障碍物部分的交叉。
在大多数情况下,RemoveFromTree(从树移除)平凡地将锥形侧从树中移除。然而,扫掠迹线有可能在系统开始处理交叉事件之前就经过交叉事件的交叉点。在这种情况下,由于树没有被正确的排序,因此移除可能会失败。一个补救措施是将扫掠迹线暂时降低某些值(但不低于被移除锥形侧的起点)、移除该锥形侧并随后恢复扫掠迹线。由于降低的扫掠迹线与第一锥形侧在比较时交叉,锥形侧的比较仍然起作用。
令n为来自P的障碍物的顶点数。事件的数目为O(n),因为有n个顶点产生不多于n个锥形且每个锥形创建最多三个事件:两个交叉事件和一个结束事件。每棵树具有不超过n个的元素。树上的每次搜索需要O(logn)个步骤。树上的“后继者”或“前辈”操作也需要O(logn)个步骤。在FindConesSeeingEvent和CloseConesByHorizontalSegment中,系统通过在移动至锥形侧后继者直至达到某条件来走查该树。对于每次调用,系统可能进行O(nlogn)个步骤。然而,对于每个经处理的锥形侧,系统移除对应的锥形,因此在整个算法运行期间,例程不会有超过O(nlogn)个步骤。因此,该算法的步骤的总数是O(nlogn)。
在路由算法的最后阶段,系统“美化”样条(spline)。由于该阶段在本领域是熟知的,因此将不在此进行具体讨论。然而,在一个很高的层面上,系统执行以下步骤:简化(shortcutting)、松弛和适配。在简化中,系统通过移除最短路径的每个内部顶点并检查该路径是否仍然没有与障碍物的内部相交叉来尝试跳过最短路径的每一个内部顶点。采用二分空间划分来有效检查交叉部分。在松弛中,系统以一种不再触碰障碍物的方式修改路径。在适配中,系统将立方Bezier分段记录至最短路径的角中。实验上,系统花费整个路由时间的一小部分用于细化。
在某些实施例中,该边路由系统减少当接收到图的改变时所进行的工作。例如,用户可移动包含上千节点的图中的节点。并非重新计算整个布局,该系统可存储此处所描述的处理的中间步骤(例如:先前的KD树、可视性图等等)并确定部分计算来基于最新的改变更新先前的结果。这允许系统在用户对图进行工作时消除一些冗余处理并更快产生边路由结果。
在某些实施例中,该边路由系统将此处所描述的技术组合使用。此处所描述的空间分解和锥形生长技术可单独或组合使用,以生成更快速的边路由结果。例如,锥形成长可在KD树块(例如,凸壳)上使用,以标识交叉和障碍物来构造可视性图。
从上文将会认识到,虽然在此已出于说明目的描述了边路由系统的特定实施例,但是可以做出各种修改而不背离本发明的精神和范围。例如,尽管描述了制图,此处的概念还可被应用于其它领域,例如机器人路径规划,其致力于为机器人绘制绕开世界中的物理障碍物的路径。相应地,本发明只受所附的权利要求书的限制。

Claims (12)

1.一种用于在制图应用程序中对图进行快速边路由的计算机实现的方法,所述方法包括:
接收(210)要对其各边进行路由以避开各节点的节点布局;
在所接收到的节点布局上执行(220)空间分解,以减少在每个连接的节点对之间进行路由期间内所需要考虑的障碍物的数量,其中执行空间分解包括:
创建容纳所接收到的图布局中的每个节点的树;
在创建所述树之后,移动节点以去除节点形状之间的重叠;
基于所创建的树中的一个或多个节点组来计算一个或多个凸壳;以及
选择用于在所述树中的每个叶节点对之间进行路由的凸壳;其中所述空间分解包括:
基于减少后的障碍物数量产生(230)可视性图;
根据所产生的可视性图来路由(240)所述边以避开所述节点;以及
基于所述节点布局以及所确定的边的路由来呈现(260)所述图以便在所述制图应用程序的用户界面中向用户显示所述节点和边,
其中以上步骤由至少一个处理器来执行。
2.如权利要求1所述的方法,其特征在于,接收所述节点布局包括接收来自正在路由所述边以便在用户界面中向用户显示的制图应用程序的所述布局。
3.如权利要求1所述的方法,其特征在于,接收所述节点布局包括接收具有通过自动布局算法来放置的节点的布局。
4.如权利要求1所述的方法,其特征在于,路由所述边包括将所述边放在不与任何节点边界交叉并近似通过所述图的最短路径的路径。
5.如权利要求1所述的方法,其特征在于,产生所述可视性图包括利用锥形生成来减少产生所述可视性图的计算复杂度。
6.如权利要求5所述的方法,其特征在于,创建所述树包括创建KD树,所述KD树基于按坐标来二分所述节点以将所述节点划分成一个或多个分区。
7.如权利要求5所述的方法,其特征在于,创建所述树包括存储按每个维度中的坐标来排序的节点列表,并选择经排序的列表内的中间节点作为用于划分剩余节点的坐标。
8.如权利要求5所述的方法,其特征在于,创建所述树包括创建平衡KD树,所述平衡KD树基于节点在所述图中的位置来提供一个或多个节点组。
9.如权利要求5所述的方法,其特征在于,计算一个或多个凸壳包括标识可用以替代一个或多个原始单个节点来进行路由的较大虚拟节点。
10.如权利要求5所述的方法,其特征在于,计算一个或多个凸壳包括以自下而上的方式处理多个KD树节点中的每一个节点,以计算围绕在作为组成部分的子节点的边界周围的凸壳。
11.如权利要求5所述的方法,其特征在于,选择凸壳包括产生可视性图障碍物的最小集合,该集合包括所述叶节点对之间的节点的一个或多个凸壳以及包含在与所述叶节点对处在同一分支内的任何后代节点。
12.一种用于对大量节点进行交互制图的快速边路由的计算机系统,所述系统包括:
布局输入组件(110),它被配置成接收要对其计划图中连接着的节点的边的路由的布局;
树建立组件(120),它被配置成建立描述了所接收到的布局中的节点之间的一个或多个关系的树数据结构;
壳建立组件(130),它被配置成将节点进行编组,使得对可视性图的构造能考虑各个组而不是考虑诸单个节点,以便产生较少的障碍物并且处理更快;
节点移动组件,它被配置成移动所述图中的节点以移除由所述壳建立组件生成的各组之间的重叠,其中选择移动阈值以允许在不需要显著改变所述图的可视外观的情况下进行更容易的路由;
可视性图组件(150),它被配置成在剩余节点和各节点组上利用产生稀疏可视性图的锥形生成来产生可视性图;以及
路由输出组件(160),它被配置成向呈现器提供所得到的可视性图以向用户显示该路由过程的可视输出。
CN201110170746.3A 2010-06-14 2011-06-13 用于交互制图的快速边路由 Active CN102279874B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/814,510 2010-06-14
US12/814,510 US8543944B2 (en) 2010-06-14 2010-06-14 Fast edge routing for interactive diagramming

Publications (2)

Publication Number Publication Date
CN102279874A CN102279874A (zh) 2011-12-14
CN102279874B true CN102279874B (zh) 2016-06-01

Family

ID=45097291

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110170746.3A Active CN102279874B (zh) 2010-06-14 2011-06-13 用于交互制图的快速边路由

Country Status (2)

Country Link
US (1) US8543944B2 (zh)
CN (1) CN102279874B (zh)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9330063B2 (en) * 2012-10-12 2016-05-03 Microsoft Technology Licensing, Llc Generating a sparsifier using graph spanners
US9026517B2 (en) * 2012-12-13 2015-05-05 International Business Machines Corporation Searching a vertex in a path
US10339648B2 (en) * 2013-01-18 2019-07-02 H. Lee Moffitt Cancer Center And Research Institute, Inc. Quantitative predictors of tumor severity
US9405798B2 (en) * 2013-06-03 2016-08-02 GM Global Technology Operations LLC Rapid nearest neighbor searching using KD-ferns
EP3086234A4 (en) * 2013-12-17 2017-10-25 Nec Corporation Write information storage device, method, and recording medium
US9262308B2 (en) 2014-01-23 2016-02-16 Accenture Global Services Limited Test paths generation for a physical system
GB2526599A (en) 2014-05-29 2015-12-02 Ibm Arranging components in a two-dimensional area
CN104102219B (zh) * 2014-07-09 2017-01-11 大连理工大学 智能导购车行驶路径的规划方法、装置及智能导购车
US10753751B2 (en) * 2014-09-19 2020-08-25 Arris Enterprises Llc Systems and methods for street level routing
CN106033342A (zh) * 2015-03-17 2016-10-19 阿里巴巴集团控股有限公司 随机图的生成方法和系统
US9734608B2 (en) 2015-07-30 2017-08-15 Microsoft Technology Licensing, Llc Incremental automatic layout of graph diagram for disjoint graphs
US10177985B2 (en) 2016-04-25 2019-01-08 Google Llc Systems and methods for routing and topology management of computer networks with steerable beam antennas
US9740368B1 (en) 2016-08-10 2017-08-22 Quid, Inc. Positioning labels on graphical visualizations of graphs
US10581523B2 (en) 2017-04-26 2020-03-03 Loon Llc Temporospatial software-defined networking for NGSO satellite networks
US10374695B2 (en) 2017-05-26 2019-08-06 Loon Llc Temporospatial software-defined networking for NGSO satellite networks
US20180150080A1 (en) * 2018-01-24 2018-05-31 GM Global Technology Operations LLC Systems and methods for path planning in autonomous vehicles
CN108415434B (zh) * 2018-03-29 2021-05-25 五邑大学 一种机器人调度方法
CN108520049B (zh) * 2018-03-30 2021-12-17 新华三大数据技术有限公司 关系图绘制方法及装置
CN109859287B (zh) * 2019-01-15 2023-04-11 昆明理工大学 一种自动生成矢量扇形的方法
US11734486B2 (en) * 2021-09-07 2023-08-22 International Business Machines Corporation Sweepline triangulation for spanning graphs
US20230195803A1 (en) * 2021-12-22 2023-06-22 Postech Academy-Industry Foundation Gis information retrieval method using dynamic k-nearest neighbor search algorithm in an obstacle environment

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101180596A (zh) * 2005-04-21 2008-05-14 提琴存储器公司 一种互连系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5450535A (en) 1993-09-24 1995-09-12 At&T Corp. Graphs employing clusters
JP3350223B2 (ja) 1994-07-13 2002-11-25 富士通株式会社 グラフ自動レイアウト方法及び装置
US5943062A (en) 1996-02-13 1999-08-24 Micrografx, Inc. System and method for automatically routing a line in a graphics chart
US20030033582A1 (en) 2001-05-09 2003-02-13 Wavemarket, Inc. Representations for estimating distance
US20060290697A1 (en) * 2005-06-24 2006-12-28 Tom Sawyer Software System for arranging a plurality of relational nodes into graphical layout form

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101180596A (zh) * 2005-04-21 2008-05-14 提琴存储器公司 一种互连系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Visibility-Graph-based Shortest-Path Geographic Routing in Sensor Networks;Guang Tan, Marin Bertier, Anne-Marie Kermarrec.;《INFOCOM 2009(https://hal.inria.fr/inria-00430147)》;20091105;section II.B,II.C,section III.C,图2 *

Also Published As

Publication number Publication date
CN102279874A (zh) 2011-12-14
US8543944B2 (en) 2013-09-24
US20110307838A1 (en) 2011-12-15

Similar Documents

Publication Publication Date Title
CN102279874B (zh) 用于交互制图的快速边路由
CN110523081B (zh) 导航寻路路径的规划方法及装置
Moscovich et al. Topology-aware navigation in large networks
JP4418468B2 (ja) 3次元オブジェクトのデジタル表現を操作するための方法およびシステム
US8681145B2 (en) Attribute transfer between computer models including identifying isomorphic regions in polygonal meshes
CN101989178B (zh) 多叉树数据结构的立体环状可视化方法
EP0865000B1 (en) Image processing method and apparatus
JP2003016465A (ja) グラフィックス・イメージ作成装置、及びその方法並びにプログラム
Capece et al. Graphvr: A virtual reality tool for the exploration of graphs with htc vive system
Vehlow et al. Visualizing dynamic hierarchies in graph sequences
Pütz et al. Tools for visualizing, annotating and storing triangle meshes in ROS and RViz
CN109683858A (zh) 数据处理方法及装置
CN110060296A (zh) 估计姿态的方法、电子设备和显示虚拟对象的方法及设备
CN101533525B (zh) 一种用于地理信息系统中的点面叠加分析方法
US9652879B2 (en) Animation of a virtual object
CN105701573B (zh) 一种基于gis缓冲区分析的路线处理方法及装置
Jan et al. A 4-geometry maze router and its application on multiterminal nets
JPH10293862A (ja) 三次元オブジェクトデータ処理方法
CN115601486A (zh) 虚拟河流生成方法及装置
CN101833779A (zh) 基于空间实体视图模型的要素标注的冲突检测与避让方法
JPH11250122A (ja) 干渉チェック装置
Iacono et al. Searching edges in the overlap of two plane graphs
Gregory et al. Feature-based surface decomposition for polyhedral morphing
JP3109585B2 (ja) 三次元オブジェクトデータ生成方法及びその装置並びに三次元オブジェクトデータを生成するプログラムを記録した記録媒体
Slack et al. Composite rectilinear deformation for stretch and squish navigation

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150730

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20150730

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

C14 Grant of patent or utility model
GR01 Patent grant