CN102866883A - 确定图形状之间的相等间隔向导的显示 - Google Patents
确定图形状之间的相等间隔向导的显示 Download PDFInfo
- Publication number
- CN102866883A CN102866883A CN2012103130949A CN201210313094A CN102866883A CN 102866883 A CN102866883 A CN 102866883A CN 2012103130949 A CN2012103130949 A CN 2012103130949A CN 201210313094 A CN201210313094 A CN 201210313094A CN 102866883 A CN102866883 A CN 102866883A
- Authority
- CN
- China
- Prior art keywords
- shape
- nearest
- neighbors
- distance
- active
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明涉及确定图形状之间的相等间隔向导的显示。在此描述了用于确定图形状之间的相等间隔向导的显示的技术。确定图中的每个形状的最近邻居,并且计算每个形状与其最近邻居之间的距离。当图中的活动形状被放置或移动时,间隔向导在形状之间的所计算距离变为等于活动形状与其最近邻居之一之间的距离时被显示在具有等距间隔的形状之间。
Description
技术领域
本发明涉及确定图形状之间的相等间隔向导的显示。
背景技术
当在图表或绘图应用中放置形状或其它对象时,用户通常想要形状之间的相等间隔。绘图应用可在图表中的各个形状之间显示间隔向导,以帮助用户将形状或对象相对于彼此间隔开。另外,所放置或移动的形状可以“咬合”到其与相邻形状之间的间隔与该图中其他形状之间的间隔相等的位置,其中显示间隔向导以示出各个形状之间的相等间隔。
一些图表或绘图应用可能仅仅示出相邻或相继形状或对象之间的间隔向导,这可能对用户的帮助过于有限。其他应用可以示出具有相等间隔的任何形状对之间的间隔向导。然而,在具有许多形状的大图中,这可能是计算密集的,并且导致不可接受的“噪声”(即在图上所示出的过多的不相关的间隔向导)量。
本文所做出的公开正是对于这些和其它考虑而提出的。
发明内容
在此描述了用于确定图形状之间的相等间隔向导的显示的技术。利用在此所述的技术,可以实现一种用于确定图中的之间要显示相等间隔向导的形状或对象的新颖方法。确定性地选择用户可能对间隔感兴趣的图中形状或对象,从而允许有限、但适用的一组相等间隔向导在合适时被显示在所选形状之间。这可以导致计算密集度更低的解决方案,该解决方案与在画布上具有相等间隔的任何两个对象中显示向导相比产生更少的噪声,同时与将相等间隔向导仅限于相邻或相继形状相比对用户更有帮助。
根据实施例,确定图中的每个形状的最近邻居,并且计算每个形状与其最近邻居之间的距离。当图中的活动形状被定位或移动时,间隔向导在形状之间的所计算距离变为等于活动形状与其最近邻居之一之间的距离时被显示在具有等距间隔的形状之间。
应当理解,上述主题可被实现为计算机控制的装置、计算机进程、计算***或诸如计算机可读介质等制品。通过阅读下面的详细描述并审阅相关联的附图,这些及各种其他特征将变得显而易见。
提供本发明内容以便以简化形式介绍将在以下详细描述中进一步描述的一些概念。本概述并不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在将本概述用来限制所要求保护的主题的范围。此外,所要求保护的主题不限于解决在本公开的任一部分中所提及的任何或所有缺点的实现。
附图简述
图1是示出由本文呈现的实施例所提供的说明性操作环境和软件组件的多方面的框图;
图2是示出了根据在此所述实施例的用于在图形状之间显示相等间隔向导的说明性用户界面的屏幕图;
图3是示出了根据在此所述实施例的一种用于在图形状之间显示相等间隔向导的方法的流程图;
图4是示出根据此处描述的各实施例的一种用于为图中的形状确定最近邻居的方法的流程图;
图5是示出了根据在此所述的实施例的关于为绘图画布上的多个形状确定最近邻居的附加细节的框图;
图6是示出了根据在此所述的实施例的关于确定图形状之间的相等间隔向导的显示的附加细节的框图;
图7是示出能够实现本文呈现的实施例的多方面的计算***的说明性计算机硬件和软件体系结构的框图。
具体实施方式
下面的具体实施方式针对用于确定图形状之间的相等间隔向导的显示的技术。尽管在结合计算机***上的操作***和应用程序的执行而执行的程序模块的一般上下文中提出了本文描述的主题,但是本领域技术人员将认识到,其他实现可以结合其他类型的程序模块来执行。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件、数据结构和其他类型的结构。此外,本领域技术人员将明白,可以利用其他计算机***配置来实施本文描述的主题,这些计算机***配置包括手持式设备、多处理器***、基于微处理器的或可编程消费电子产品、小型计算机、大型计算机等等。
在以下详细描述中,参考了构成其一部分并作为说明示出各具体实施例或示例的附图。在附图中,在全部若干附图中相似的附图标记表示相似的元素。
图1示出了根据此处提供的各实施例的包括用于用于确定图形状之间的相等间隔向导的显示的的软件组件的说明性操作环境100。环境100包括计算机***102。计算机***102可表示用户计算设备,诸如个人计算机(“PC”)、桌面工作站、膝上型计算机、笔记本、移动设备、个人数字助理(“PDA”)等等。可替代地,计算机***102可以表示可操作地连接到下列各项的用户计算设备:一个或多个应用服务器、Web服务器、数据块服务器、网络设备、专用硬件设备、和/或现有技术中已知的其他服务器计算机或用户计算设备。计算***102由用户104通过显示设备106以及诸如图1所示的键盘和/或鼠标之类的一个或多个输入设备108来访问。
根据实施例,绘图应用程序110在计算机***102上执行,该绘图应用程序110允许用户104通过在绘图表面或“画布”上添加、操纵和/或移除绘图对象(在此通称“形状”)来创建视觉绘图和/或图。例如,绘图应用程序110可以是来自华盛顿雷蒙德市的微软公司的 演示应用。绘图应用程序110可以在计算机***102的用户计算设备上本地地执行,或者可以在由用户计算设备上所执行的客户端应用访问的诸如Web服务器之类的服务器计算机上执行。绘图应用程序110可以被实现为硬件、软件或者二者的组合。另外,绘图应用程序110可以包括计算***102上的任何数目的应用程序模块和其他组件。
图2示出了由绘图应用程序110显示的说明性用户界面200的示例。用户界面200包括窗口202,其中在绘图画布204上示出了多个形状206A-206E(在此通称形状206)。形状206可以由用户104使用诸如上述鼠标之类的输入设备108在绘图画布204上布置和操纵。例如,用户104可以利用鼠标在绘图画布204上调动鼠标指针208以便选中和移动或以其他方式操纵图中的形状,比如图2所示的形状206C。在画布204上被用户移动或以其他方式***纵的形状206C在此可以称为“活动形状”。
根据实施例,当诸如206C之类的活动形状在绘图画布204上被移动或定位时,绘图应用程序110可以在画布上示出多个间隔向导210A-210B(在此通称间隔向导210)。当绘图画布上的活动形状206C与一个或多个其他形状206之间的间隔变为等于画布上的其他相关形状之间的间隔时,可以显示向导210,这将在下面参考图3更详细描述。例如,当形状206B与206C之间、以及形状206D与206E之间的水平距离在活动形状206C的移动期间变为相等时,可以分别在活动形状206C与形状206B之间、以及形状206D与形状206E之间显示间隔向导210A和210B。另外,活动形状206C可以在画布的范围内被拖动时“咬合”到等距间隔的该位置,并且可以只要活动形状206C保留在该位置就显示间隔向导210A和210B。
在一些实施例中,绘图应用程序110根据与每个形状206A-206E相对应的边界框212A-212E(在此通称边界框212)、而不是根据形状本身的实际边界来计算绘图画布204上的形状之间的距离。形状206的边界框212被定义成可以完全包围该形状的最小矩形。能够理解,对于诸如图2所示形状206B和206C之类的矩形形状,边界框212B和212C将与形状边界相同,而对于诸如形状206A、206D和206E之类的非矩形形状,可以由绘图应用程序110根据该形状(但是未在绘图画布上示出)推断出边界框212A、212D和212E。在其他实施例中,绘图应用程序110可以根据其他一些代表性边界框或者从形状本身的实际边界计算出形状206之间的距离。
现在参考图3和4,将提供关于在此所呈现的实施例的附加细节。应当理解,参考图3和4所述的逻辑操作被实现为:(1)在计算***上运行的一系列计算机实现的动作或程序模块;和/或(2)计算***内的互连机器逻辑电路或电路模块。取决于计算***的性能及其他要求,该实现是设计问题。因此,此处所描述的逻辑操作被不同地称为操作、结构设备、动作或模块。这些操作、结构设备、动作和模块可以用软件、固件、专用数字逻辑、及其任何组合来实现。还应该明白,可以执行比附图中示出并在此处描述的操作更多或更少的操作。这些操作还可按与所述次序不同的次序来执行。
图3示出了根据一个实施例的用于确定绘图画布204上的之间要显示间隔向导210的形状206的一个例程300。例如当活动形状206C被放置在绘图画布上或者在绘图画布上移动时,例程300可以由绘图应用程序110来执行。可以明白,例程300也可由在其它计算设备上执行的其它模块或组件执行,或者由模块、组件和计算设备的任何组合来执行。
例程300始于操作302,其中绘图应用程序110为绘图画布204上的每个形状206确定最近的邻居。下面将会描述,图中的形状206之间的距离计算是对每个形状与其在绘图画布204上的最近邻居的配对执行的,而不是对图中的每个不同形状对执行的。与为了计算大而复杂的图中的每对形状之间的距离将需要的N2(N是形状206的数目)次计算相比,这可以显著地减小为了执行距离计算所需的处理负载。
在一个实施例中,绘图应用程序110利用图4中所示的例程400来为绘图画布204上的每个形状206确定最近的邻居。例程400始于操作402,其中绘图应用程序110选择绘图画布204上的第一形状206。能够理解,在绘图画布204上可见的形状206可以表示图或绘图中的所有形状的子集。例程400从操作402进行到操作404,其中绘图应用程序110在绘图画布204的范围内从所选形状206的边界框212的外边缘向外投射线。所投射的线从边界框212的边缘延伸到绘图画布204的边缘,直到它们被画布上的另一形状206的边界框遮挡。
图5提供了关于操作404的进一步细节。图5示出了在绘图画布204上定位的编号为1-8的八个形状206。为清楚起见,仅仅示出了相应形状1-8的边界框212A-212H。从与第一形状206(形状1)相对应的边界框212A开始,绘图应用程序110将线502A、502B从边界框的外边缘向外向绘图画布204的边缘投射。水平线502A是从边界框212A的垂直边缘水平地投射的,并且垂直线502B是从边界框的水平边缘垂直地投射的。所投射的线502A、502B在绘图画布204的范围内继续,直到被绘图画布上的对应于另一形状206(比如形状5)的边界框(比如边界框212E)遮挡或者达到了画布的边缘。在一个实施例中,所投射的线502A、502B可以被遮挡性边界框(其由与图5中所示形状2相对应的边界框212B来示出)的外边缘和内边缘二者遮挡。
例程400从操作404进行到操作406,其中绘图应用程序110记录包括所选形状206和如下任何其他形状的最近邻居对:所述形状在绘图画布上具有遮挡来自所选形状的边界框的所投射线502A、502B的边界框212。例如,如图5所示,形状1的最近邻居将是形状2、3、5和6。因此,绘图应用程序110可以将最近邻居对记录为1和2、1和3、1和5、以及1和6。
例程400从操作406进行到操作408,其中绘图应用程序110确定在绘图画布204上是否存在更多形状206需要确定它们的最近邻居。如果绘图画布204上的更多形状206需要确定它们的最近邻居,则例程400从操作408进行到操作410,其中绘图应用程序110选择绘图画布204上的下一形状206。例程400从操作410进行到操作404,其中重复该过程,直到已经为绘图画布204上的所有形状206确定了最近邻居。
一旦已经为绘图画布204上的所有形状206确定了最近邻居,则例程400返回到图3所示的例程300的操作304。在操作304,绘图应用程序110计算绘图画布上的每个形状与其最近邻居之间的距离,也就是说,计算在上面的操作302中记录的每对形状之间的距离。根据一个实施例,仅仅计算每对形状206的边界框212之间的最小水平和/或垂直距离。附加地或可替代地,最近邻居对之间的距离计算可以包括形状206的边界框212的原点、中心和/或匹配顶点等等之间的水平和垂直距离。另外,可以仅仅计算相关的距离。例如,可以为不具有共同水平坐标的一对最近邻居仅仅计算边界框212之间的水平距离,而可以为不具有共同垂直坐标的对仅仅计算垂直距离。
在一个实施例中,绘图应用程序110存储最近邻居对之间的所计算的距离,并且在绘图画布204上的任何形状206被添加、重新确定大小、移动、移除或以其他方式***作使得形状的最近邻居或画布上的形状对之间的距离可能改变时,按照需要更新所述距离。可替代地,每当形状206被放置在绘图画布204上或在绘图画布204上移动并且需要确定之间要显示间隔向导210的形状206时,绘图应用程序110可以重复操作302中每个形状的最近邻居的确定、以及操作304中的最近邻居对之间的距离计算。
例程300从操作304进行到操作306,其中绘图应用程序110确定活动形状206与最近邻居之间的当前距离是否变为等于在操作304中所计算的任何最近邻居对之间的距离。根据一个实施方式,相等距离必须处于相同的水平或垂直上下文中,并且相关联的形状206必须全部共享该水平或垂直上下文中的一些坐标。如果最近邻居对之间的所计算的一个或多个距离变为等于活动形状206与其一个或多个最近邻居之间的距离并且所涉及的所有形状都共享一些水平或垂直坐标,则例程300进行到操作308,其中绘图应用程序110在间隔相等的形状、即具有等距间隔的形状对之间显示间隔向导210。
图6提供了关于上述操作306和308的进一步细节。图6示出了在绘图画布204上定位的编号为10-17的八个形状206。为清楚起见,仅仅示出了相应形状10-17的边界框212L-212Q。如图中进一步所示,形状11和12的边界框212K与212L、形状12和13的边界框212L与212M、形状14和15的边界框212N与212O、以及形状16和17的边界框212P与212Q之间的水平距离当前是相等的。另外,形状10和12的边界框212J与212L、以及形状13和16的边界框212M与212P之间的水平距离是相等的。当前的活动形状(形状13)由其虚线边界框212M来指示。
如图6中进一步所示,当当前活动形状13被移动到图中所指示的位置处使得上述水平距离变为相等时,绘图应用程序110分别在形状11与12、形状12与13以及形状14与15之间显示水平间隔向导210C、210D和210E。这些间隔向导210C、210D和210E被显示是因为最近邻居形状对11和12、12和13、14和15之间的距离全部变为在水平上下文中相等,并且所有形状11、12、14和15都与活动形状13水平地共享坐标,也就是说,可以划出分别与所有边界框212K、212L、212M、212N相交的水平线。
绘图应用程序110将不在形状16与17之间显示间隔向导210,因为尽管这些形状的边界框212P与212Q之间的水平距离等于其他间隔相等的形状的水平距离,但是形状17未与形状13水平地共享坐标。另外,绘图应用程序110将不在形状10与12和形状13与16之间显示相等间隔向导210,因为尽管形状10和12的边界框212J和210L以及形状13和16的边界框212M和212P之间的水平距离是相等的并且所有这些形状水平地共享坐标,但是根据上面参照图4所述的例程400,形状10不是形状12的最近邻居。能够理解,在操作308,绘图应用程序110可以为两个或更多不同的相等间隔显示相等间隔向导210,并且水平和垂直间隔向导二者都可以显示。从操作308,例程300结束。
尽管本公开描述了在绘图应用的图上的形状206之间显示相等间隔向导210,但是能够理解,在此所述的方法和例程可以用于在其他上下文中显示相等间隔向导。例如,在此所述的相同方法和例程可以用于在编程应用中的形状之间、在演示应用中的文本或绘图对象之间、在发布应用中的内容组件之间、web设计者应用中的文档对象之间等等显示相等间隔向导210。
另外,由于其不仅限于相邻的对象或形状,并且最近邻居即使被居间对象部分地遮挡仍然可以被标识出,因此用于为绘图画布204上的形状206确定最近邻居的例程400可以在确定相等间隔向导210的显示的上下文以外适用于相对于所选对象感兴趣的对象的任何确定。例如,用于确定对象的最近邻居的例程400可以有助于确定电路板设计工具中的连接迹线的路径、确定从中继承性质或属性的相关对象、确定开发多节点网络时的最近节点、或者对象的相对位置可以表达成二维平面中的矩形框或三维空间中的立方体的任何其他上下文。
图7示出了计算机700的说明性计算机体系结构,所述计算机700能够执行本文所描述的用于以上述方式确定图形状之间的相等间隔向导的显示的软件组件。图7所示的计算机体系结构示出常规桌面计算机、台式计算机、膝上型计算机、笔记本计算机、PDA、无线电话或服务器计算机,并可以用来执行本文呈现的被描述为在计算机***102或其它计算设备上执行的软件组件的任何方面。
图7所示的计算机体系结构包括一个或多个中央处理单元(“CPU”)702。CPU 702可以是执行计算机700的操作所需的算术和逻辑操作的标准处理器。CPU 702通过从一个分立的物理状态转换到下一状态来执行必要的运算,该转换是通过操纵在各状态之间不同并改变这些状态的开关元件来实现的。切换元件一般可包括维持两个二进制状态之一的电子电路,诸如触发电路,以及基于一个或多个其它切换元件的状态的逻辑组合来提供输出状态的电子电路,诸如逻辑门。这些基本切换元件可被组合以创建更复杂的逻辑电路,包括寄存器、加减器、算术逻辑单元、浮点单元和其它逻辑元件。
该计算机体系结构还包括含有随机存取存储器(“RAM”)714和只读存储器716(“ROM”)的***存储器708、以及将存储器耦合至CPU 702的***总线704。基本输入/输出***被存储在ROM 716中,该***包含帮助诸如在启动期间在计算机700中的元件之间传递信息的基本例程。计算机700还包括用于存储操作***718、应用程序和其它程序模块的大容量存储设备710,这将在本文中更为详尽地描述。
大容量存储设备710通过连接至总线704的大容量存储控制器(未示出)连接到CPU 702。大容量存储设备710为计算机700提供非易失性存储。计算机700可通过变换大容量存储设备710的物理状态来反映被存储的信息来将信息存储在该设备上。在本说明书的不同实现中,物理状态的具体变换可取决于各种因素。这些因素的示例可以包括,但不仅限于:用于实现大容量存储设备的技术,大容量存储设备被表征为主存储还是辅存储等等。
例如,计算机700可通过向大容量存储控制器发出以下指令来将信息存储到大容量存储设备710:变更磁盘驱动器内的特定位置的磁特性;变更光存储设备中的特定位置的反射或折射特性;或变更固态存储设备中的特定电容、晶体管或其它分立元件的电特性。在不背离本发明的范围和精神的情况下,物理介质的其它变换是可能的。计算机700还可通过检测大容量存储设备内的一个或多个特定位置的物理状态或特性来从大容量存储设备710读取信息。
如上简述,多个程序模块和数据文件可存储在计算机700的大容量存储设备710和RAM 714中,包括适用于控制计算机的操作的操作***718。大容量存储设备710和RAM 714还可以存储一个或多个程序模块。具体而言,大容量存储设备710和RAM 714可存储绘图应用程序110,这曾在上文中参考图1更详细地描述。大容量存储设备710和RAM 714还可存储其它类型的程序模块或数据。
除了上述大容量存储设备710之外,计算机700能够访问其它计算机可读介质以存储和检索信息,诸如程序模块、数据结构或其它数据。本领域技术人员应该明白,计算机可读介质可以是计算机700可访问的任何可用介质,包括计算机可读存储介质和通信介质。通信介质包括瞬时信号。计算机可读存储介质包括以存储如计算机可读指令、数据结构、程序模块或其它数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。例如,计算机可读存储介质包括但不限于,RAM、ROM、EPROM、EEPROM、闪存或其它固态存储器技术,CD-ROM、数字多功能盘(DVD)、HD-DVD、蓝光、或其它光学存储、磁带盒、磁带、磁盘存储或其它磁存储设备,或可以用来存储所需信息并可由计算机700访问的任何其它介质。
计算机可读存储介质可以用在被加载到计算机700中时可将计算机***从通用计算***变换成能够实现本文描述的实施例的专用计算机的计算机可执行指令来编码。计算机可执行指令可通过变更计算机可读存储介质中的特定位置的电、光、磁或其它物理特性来在该介质上编码。这些计算机可执行指令通过如上所述地指定CPU 702如何在各状态之间转换来变换计算机700。根据一个实施例,计算机700能够访问存储计算机可执行指令的计算机可读存储介质,所述指令在由计算机执行时执行以上参照图3和4描述的用于确定图形状之间的相等间隔向导的显示的例程300和400。
根据各种实施例,计算机700可使用通过一个或多个网络720到远程计算设备和计算机***的逻辑连接在联网环境中操作,所述网络诸如LAN、WAN、因特网或本领域已知的任何拓扑结构的网络。计算机700可以通过连接到总线704的网络接口单元706连接到网络720。应当理解,网络接口单元706还可以被用来连接到其他类型的网络和远程计算机***。
计算机700还可包括用于接收并处理来自包括键盘、鼠标、触摸垫、触摸屏、电子指示笔、或其它类型的输入设备的多个输入设备108的输入的输入/输出控制器712。类似地,输入/输出控制器712还可向诸如计算机监视器、平板显示器、数字投影仪、打印机、绘图仪、或其他类型的输入设备的显示设备106提供输出。可以明白,计算机700可以不包括图7所示的全部组件,可以包括未在图7中明确示出的其它组件,或者可使用完全不同于图7所示的体系结构。
基于上文,应当理解,在此提供了用于确定图形状之间的相等间隔向导的显示的技术。虽然以计算机结构特征、方法动作、以及计算机可读存储介质专用的语言描述了本文呈现的主题,但是应该理解,在所附权利要求书中所限定的本发明不一定仅限于本文描述的具体特征、动作、或介质。相反,这些具体特征、动作和介质是作为实现权利要求的示例形式来公开的。
上述主题仅作为说明提供,并且不应被解释为限制。可对此处所述的主题作出各种修改和改变,而不必遵循所示和所述的示例实施例和应用,且不背离所附权利要求书中所述的本发明的真正精神和范围。
Claims (10)
1.一种在图中的形状(206)之间显示间隔向导(210)的计算机实现方法,所述方法包括在一个或多个计算机(102)上执行指令以执行以下操作:
通过如下方式确定所述图中的每个形状(206)的最近邻居:从与每个形状相对应的边界框(212)的外边缘向外投射水平和垂直线(502);以及把所述图中的具有遮挡所投射的水平和垂直线(502)的相应边界框(212)的其他形状(206)标识为所述形状(206)的最近邻居;
计算所述图中的每个形状(206)与所述形状(206)的最近邻居之间的距离;
确定所计算的距离中的一个或多个是否等于活动形状(206C)与活动形状(206C)的最近邻居之间的距离;以及
在确定所计算的距离中的一个或多个等于活动形状(206C)与活动形状(206C)的最近邻居之间的距离以后,在活动形状(206C)与活动形状(206C)的最近邻居之间、以及在所述图中的如下的每个形状(206)与该形状的最近邻居之间显示间隔向导:该形状(206)在该形状与该形状的最近邻居之间具有与活动形状(206C)与活动形状(206C)的最近邻居之间的距离相等的所计算的距离。
2.如权利要求1所述的计算机实现的方法,其特征在于,仅仅在与所述活动形状水平或垂直地共享坐标的形状之间显示所述间隔向导。
3.如权利要求1所述的计算机实现的方法,其特征在于,计算所述图中的每个形状与所述形状的最近邻居之间的距离包括:计算对应于所述形状的边界框之间的水平距离和垂直距离。
4.如权利要求1所述的计算机实现的方法,其特征在于,对绘图应用程序的可见绘图画布上的形状执行每个形状的最近邻居的确定以及每个形状与该形状的最近邻居的距离计算。
5.一种用计算机可执行指令编码的计算机可读存储介质,所述指令在由计算机执行时使所述计算机:
从在二维平面(204)中定位的多个对象(206)中选择第一对象(206A);
在平面(204)的范围内从第一对象(206A)的外边缘向外投射水平和垂直线(502);以及
从所述多个对象(206)中将遮挡水平和垂直线(502)的其他对象(206)标识为第一对象(206A)的最近邻居。
6.如权利要求5所述的计算机可读存储介质,其特征在于,进一步用使计算机进行如下动作的计算机可执行指令编码:
从所述多个对象中选择下一对象;以及
重复投射和标识操作,直到已经为所述多个对象的全部标识出了最近邻居。
7.如权利要求5所述的计算机可读存储介质,其特征在于,所述水平和垂直线是从对应于第一对象的边界框的外边缘向外投射的,并且其中所投射的水平和垂直线被对应于其他对象的边界框的外边缘或内边缘遮挡。
8.如权利要求7所述的计算机可读存储介质,其特征在于,进一步用使计算机进行如下动作的计算机可执行指令编码:
计算所述绘图画布上的每个绘图对象与所述绘图对象的最近邻居之间的水平距离;
确定所计算的水平距离中的一个或多个是否等于活动绘图对象与所述活动绘图对象的最近邻居之间的水平距离;以及
在确定所计算的水平距离中的一个或多个等于活动绘图对象与所述活动绘图对象的最近邻居之间的水平距离以后,在所述活动绘图对象与所述活动绘图对象的最近邻居之间、以及在所述绘图画布上的如下的每个绘图对象与该绘图对象的最近邻居之间显示水平间隔向导:该绘图对象在该绘图对象与该绘图对象的最近邻居之间具有与所述活动绘图对象与所述活动绘图对象的最近邻居之间的水平距离相等的所计算的水平距离并且与所述活动绘图对象水平地共享坐标。
9.一种用于生成图中的形状(206)之间的显示间隔向导(210)的***,该***包括:
计算机(102);以及
绘图应用程序(110),所述绘图应用程序(110)在计算机(102)上执行并且被配置为:
确定所述图中的每个形状(206)的最近邻居;
计算所述图中的每个形状(206)与所述形状(206)的最近邻居之间的距离;
确定所计算的距离中的一个或多个是否等于活动形状(206C)与活动形状(206C)的最近邻居之间的距离;以及
在确定所计算的距离中的一个或多个等于活动形状(206C)与活动形状(206C)的最近邻居之间的距离以后,在活动形状(206C)与活动形状(206C)的最近邻居之间、以及在所述图中的如下的每个形状(206)与该形状的最近邻居之间显示间隔向导:该形状(206)在该形状与该形状的最近邻居之间与等于活动形状(206C)与活动形状(206C)的最近邻居之间的距离相等的所计算的距离。
10.如权利要求9所述的***,其特征在于,确定每个形状的最近邻居包括:
从所述图中的形状中选择第一形状;
从对应于第一形状的边界框的外边缘向外投射水平和垂直线;
将所述图中的具有遮挡所投射的水平和垂直线的相应边界框的其他形状标识为第一形状的最近邻居;
从所述图中的形状中选择下一形状;以及
重复投射和标识操作,直到已经为所述图中的全部形状标识出最近邻居。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/220,725 | 2011-08-30 | ||
US13/220,725 US9164777B2 (en) | 2011-08-30 | 2011-08-30 | Determining the display of equal spacing guides between diagram shapes |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102866883A true CN102866883A (zh) | 2013-01-09 |
CN102866883B CN102866883B (zh) | 2016-06-08 |
Family
ID=47445765
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210313094.9A Active CN102866883B (zh) | 2011-08-30 | 2012-08-29 | 确定图形状之间的相等间隔向导的显示 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9164777B2 (zh) |
CN (1) | CN102866883B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101158679B1 (ko) * | 2011-09-29 | 2012-06-22 | 주식회사 인프라웨어 | 직접입력 방식의 전자문서 상의 도형입력 방법, 그리고 직접입력 방식의 전자문서 상의 도형입력 프로그램을 기록한 컴퓨터로 판독가능한 기록매체 |
US8866854B2 (en) | 2011-10-31 | 2014-10-21 | Microsoft Corporation | Consolidated orthogonal guide creation |
US9323436B2 (en) | 2012-04-05 | 2016-04-26 | Microsoft Technology Licensing, Llc | Utilizing drawing guides in determining the display of smart guides in a drawing program |
US11402991B2 (en) * | 2015-12-01 | 2022-08-02 | Myscript | System and method for note taking with gestures |
CN108780494B (zh) | 2016-01-26 | 2022-03-22 | 微软技术许可有限责任公司 | 到多层栅格布局的对象的对准的设备、方法和程序产品 |
US10691316B2 (en) | 2016-03-29 | 2020-06-23 | Microsoft Technology Licensing, Llc | Guide objects for drawing in user interfaces |
US10289656B2 (en) * | 2017-06-22 | 2019-05-14 | Adobe Inc. | Efficiently relocating objects within a digital document to an equidistant position relative to reference objects |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1677343A (zh) * | 2004-03-31 | 2005-10-05 | 微软公司 | 网格画布 |
CN1838071A (zh) * | 2005-03-21 | 2006-09-27 | 微软公司 | 项目沿嵌入的单流形路径的自动布局 |
US20060259872A1 (en) * | 1999-07-30 | 2006-11-16 | Microsoft Corporation | Establishing and displaying dynamic grids |
CN102105850A (zh) * | 2008-07-23 | 2011-06-22 | 微软公司 | 呈现动态网格 |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5299307A (en) | 1990-08-17 | 1994-03-29 | Claris Corporation | Controls for drawing images on computer displays |
JP3589254B2 (ja) | 1995-10-20 | 2004-11-17 | 富士ゼロックス株式会社 | 作図装置 |
US5745099A (en) | 1995-12-18 | 1998-04-28 | Intergraph Corporation | Cursor positioning method |
US5798761A (en) | 1996-01-26 | 1998-08-25 | Silicon Graphics, Inc. | Robust mapping of 2D cursor motion onto 3D lines and planes |
US5774111A (en) | 1996-02-12 | 1998-06-30 | Dassault Systemes | Method and apparatus for providing a dynamically oriented compass cursor on computer displays |
US5894310A (en) | 1996-04-19 | 1999-04-13 | Visionary Design Systems, Inc. | Intelligent shapes for authoring three-dimensional models |
US6065021A (en) | 1998-04-07 | 2000-05-16 | Adobe Systems Incorporated | Apparatus and method for alignment of graphical elements in electronic document |
US6697062B1 (en) | 1999-08-06 | 2004-02-24 | Microsoft Corporation | Reflection space image based rendering |
US6568938B1 (en) | 1999-12-02 | 2003-05-27 | Gridart, Llc | Drawing aid |
TWI243320B (en) | 2001-03-28 | 2005-11-11 | Ulead Systems Inc | Method for manipulating multiple multimedia objects |
US7467351B1 (en) | 2002-01-31 | 2008-12-16 | Adobe Systems Incorporated | Layered master pages |
US7751623B1 (en) | 2002-06-28 | 2010-07-06 | Microsoft Corporation | Writing guide for a free-form document editor |
US7545392B2 (en) | 2003-05-30 | 2009-06-09 | Apple Inc. | Dynamic guides |
US20050068290A1 (en) | 2003-09-28 | 2005-03-31 | Denny Jaeger | Method for creating and using user-friendly grids |
US20050172239A1 (en) | 2004-01-30 | 2005-08-04 | International Business Machines Corporation | Modeless interaction with GUI widget applications |
CA2511274A1 (en) | 2004-07-02 | 2006-01-02 | Research Machines Plc | A computer method for controlling a display, and graphical tools for on-screen analysis |
US7614000B2 (en) | 2004-12-20 | 2009-11-03 | Microsoft Corporation | File formats, methods, and computer program products for representing presentations |
GB0502891D0 (en) * | 2005-02-12 | 2005-03-16 | Next Device Ltd | User interfaces |
CN101194504B (zh) | 2005-04-18 | 2013-01-02 | 汤姆森许可贸易公司 | 在交互式图形显示界面上显示多个源和关联内容的方法 |
US8166402B2 (en) | 2005-05-13 | 2012-04-24 | Microsoft Corporation | User interface for managing master and layout relationships |
US8560952B2 (en) | 2005-06-13 | 2013-10-15 | Microsoft Corporation | Adding an arbitrary number of placeholders to a custom layout |
US7589750B1 (en) | 2006-03-15 | 2009-09-15 | Adobe Systems, Inc. | Methods and apparatus for arranging graphical objects |
WO2008076079A1 (en) | 2006-12-19 | 2008-06-26 | Bracco Imaging S.P.A. | Methods and apparatuses for cursor control in image guided surgery |
TW200901019A (en) | 2007-06-22 | 2009-01-01 | Kuo-Ping Yang | Method of guiding a clicking position on a computer interface |
US20100218100A1 (en) | 2009-02-25 | 2010-08-26 | HNTB Holdings, Ltd. | Presentation system |
JP5293501B2 (ja) | 2009-08-26 | 2013-09-18 | 富士通株式会社 | 3次元データ表示装置およびプログラム |
US8866854B2 (en) | 2011-10-31 | 2014-10-21 | Microsoft Corporation | Consolidated orthogonal guide creation |
US20130145305A1 (en) | 2011-12-05 | 2013-06-06 | Microsoft Corporation | Differentiating between editable and uneditable guides |
US9323436B2 (en) | 2012-04-05 | 2016-04-26 | Microsoft Technology Licensing, Llc | Utilizing drawing guides in determining the display of smart guides in a drawing program |
-
2011
- 2011-08-30 US US13/220,725 patent/US9164777B2/en active Active
-
2012
- 2012-08-29 CN CN201210313094.9A patent/CN102866883B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060259872A1 (en) * | 1999-07-30 | 2006-11-16 | Microsoft Corporation | Establishing and displaying dynamic grids |
CN1677343A (zh) * | 2004-03-31 | 2005-10-05 | 微软公司 | 网格画布 |
CN1838071A (zh) * | 2005-03-21 | 2006-09-27 | 微软公司 | 项目沿嵌入的单流形路径的自动布局 |
CN102105850A (zh) * | 2008-07-23 | 2011-06-22 | 微软公司 | 呈现动态网格 |
Non-Patent Citations (1)
Title |
---|
CARI JANSEN: "When smart guides turn blue…", 《HTTP://INDESIGNSECRETS.COM/WHEN-SMART-GUIDES-TURN-BLUE.PHP》 * |
Also Published As
Publication number | Publication date |
---|---|
CN102866883B (zh) | 2016-06-08 |
US9164777B2 (en) | 2015-10-20 |
US20130050264A1 (en) | 2013-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2018206841B2 (en) | Image curation | |
CN102866883A (zh) | 确定图形状之间的相等间隔向导的显示 | |
US9471957B2 (en) | Method for partitioning, managing and displaying a collaboration space and interactive input system employing same | |
US20120324400A1 (en) | Rotation Of Multi-Workspace Environment Containing Tiles | |
CN105264482B (zh) | 对很少读取的数据的低成本存储 | |
CN104025003A (zh) | 平移动画 | |
JP2017517055A (ja) | 選択可能なコントロールおよびコマンドを表示および拡大縮小するためのコマンドユーザインターフェース | |
EP3259659A1 (en) | Control of item arrangement in a user interface | |
US9323436B2 (en) | Utilizing drawing guides in determining the display of smart guides in a drawing program | |
KR20170042350A (ko) | 그룹 기반의 유저 인터페이스 재배열 | |
CN105518566A (zh) | 显示旋转管理 | |
US20150234522A1 (en) | Touch event scan method, electronic device and storage medium | |
US9785310B2 (en) | Control of addition of representations to an application launcher | |
CN104106040B (zh) | 图表缩放的视觉表示 | |
US20110199517A1 (en) | Method of showing video on a touch-sensitive display | |
CN107111418A (zh) | 具有最小破坏性的图标位移 | |
CN107728983A (zh) | 双屏操作方法及设备 | |
KR20180117619A (ko) | 컴퓨팅 장치를 이용한 객체 관리 및 시각화 | |
WO2016155387A1 (zh) | 基于移动终端的插件管理方法及装置 | |
US10580115B2 (en) | Scaling content on touch-based systems | |
CN109582269B (zh) | 物理拼接屏显示方法、装置及终端设备 | |
CN106775634B (zh) | 一种展示块显示方法及装置 | |
US20150064661A1 (en) | Electronic device and method for managing software tools | |
US8949245B2 (en) | Enhanced views of tagged items in a gallery | |
US8774468B2 (en) | Dynamic shape approximation |
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: 20150728 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20150728 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 |