CN105210053A - 优化群集的结构注解的放置 - Google Patents

优化群集的结构注解的放置 Download PDF

Info

Publication number
CN105210053A
CN105210053A CN201380075157.4A CN201380075157A CN105210053A CN 105210053 A CN105210053 A CN 105210053A CN 201380075157 A CN201380075157 A CN 201380075157A CN 105210053 A CN105210053 A CN 105210053A
Authority
CN
China
Prior art keywords
note
groove
groove size
size
candidate item
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.)
Pending
Application number
CN201380075157.4A
Other languages
English (en)
Inventor
M·O·希尔斯
J·尤德尔
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.)
Landmark Graphics Corp
Original Assignee
Landmark Graphics Corp
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 Landmark Graphics Corp filed Critical Landmark Graphics Corp
Publication of CN105210053A publication Critical patent/CN105210053A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/169Annotation, e.g. comment data or footnotes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/60Editing figures and text; Combining figures or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/106Display of layout of documents; Previewing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/109Font handling; Temporal or kinetic typography

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Processing Or Creating Images (AREA)
  • User Interface Of Digital Computer (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Digital Computer Display Output (AREA)

Abstract

一种处理器接收旨在优化图形用户界面上所显示的多个注解沿着多段线的放置的命令。所述多个注解具有多个字体大小且每一字体大小具有高度。沿着所述多段线为逻辑注解槽选择多个注解槽大小候选项。从所述多个注解槽大小候选项中选择注解槽大小,其中所述所选择的注解槽大小小于所述字体大小中的最大者。将所述多段线划分为具有所述所选择的注解槽大小的逻辑注解槽。使所述多个注解分布在所述逻辑注解槽之中。在所述图形用户界面上显示所述多段线和所述所分布的多个注解。

Description

优化群集的结构注解的放置
背景技术
当在二维空间环境(诸如计算机监视器上的显示器)中对数据作注解时,需要将注解放置得尽可能靠近其正作注解的数据。然而,当存在多条数据靠在一起时,其注解可能重叠,发生称作“覆盖张贴(overposting)”的事件。在将注解保持靠近其指代的数据的同时将覆盖张贴减到最少是一项挑战。
附图说明
图1展示计算机系统。
图2展示多段线和覆盖张贴的注解。
图3展示具有逻辑注解槽的多段线。
图4展示具有逻辑注解槽的图2的多段线和覆盖张贴的注解。
图5至9和11至13展示流程图。
图10展示在应用本申请中描述的技术之前和之后的逻辑槽记录的表。
图14展示具有分布至逻辑注解槽的注解的图2的多段线。
图15展示没有逻辑注解槽的图14的多段线和注解。
图16展示多段线和覆盖张贴的注解。
图17展示在应用本文中描述的技术之后的图16的多段线和覆盖张贴的注解。
图18和19展示本文中描述的技术在石油工业中的应用。
具体实施方式
本文中描述一种用于减少紧挨着多段线用多种字体绘制的群集的注解的覆盖张贴的技术。在一个实施方案中,所述技术减少呈多种不同字体的注解的覆盖张贴。另外,在一个实施方案中,所述技术重新定位多个注解字符串。
定义:
多段线:一个或多个相连的线段的有序列表。举例来说,多段线可用以表示井筒。
头部:多段线上的第一点。
尾部:多段线上的最后一点。
注解:相对于多段线具有定义的位置的文字。
标签:注解的替代术语。
沿着多段线的深度:从多段线的头部到多段线上的位置的距离,其是通过对多段线的头部与给定位置之间的构成线段求和来计算。
多段线的区段:多段线上的选定的两个点之间的多段线的线段。这些点中的每一者将具有特定的沿着多段线的深度。
顶部深度:多段线的区段上的最靠近多段线的头部的点的深度。
底部深度:多段线的区段上的最靠近多段线的尾部的点的深度。
注解位置:注解字符串与其相关联的沿着多段线的深度处的位置。
标签索引:注解位置的序数,假定注解位置是从多段线的头部至尾部排序的。
下一标签:较靠近多段线的尾部的邻近标签。
上一标签:较靠近多段线的头部的邻近标签。
记录索引:注解位置的序数,假定注解位置是从多段线的头部至尾部排序的。
逻辑注解槽(或“槽”):多段线的可容纳注解的区段。其具有沿着多段线测量的槽高度。实际上其中可能没有注解。逻辑注解槽是从多段线的头部至多段线的尾部排序的。
逻辑注解槽索引(或“槽索引”或“槽编号”):从多段线的头部至多段线的尾部排序的逻辑注解槽的序数。
逻辑注解槽位置:注解与其相关联的一个或多个槽。
逻辑注解槽记录(或“记录”):保留逻辑槽位置和相关联的标签索引的记录。
当前记录:正被处理的记录。
一对记录:同时被处理的两个邻近的记录的集合。这由当前记录和下一邻近记录组成。如果对中的第二记录的槽编号不大于对中的第一记录的槽编号,那么对中的一个记录将被修改。
对中的第一记录:这与当前记录相同。
第二记录:在记录的列表中在当前记录之后的记录。可能不存在这些中的一者。
第三记录:在记录的列表中在第二记录之后的记录。可能不存在这些中的一者。这在其为第三记录时不修改。
在一个实施方案中,图1中说明的计算机系统环境100包含计算机外壳102,其含有:处理器104,诸如微处理器;随机存取存储器106(“RAM”);只读存储器108(“ROM”);一个或多个存储装置110,诸如硬盘驱动器、光盘驱动器、固态硬盘和其它类似装置;其通过总线112互连。在一个实施方案中,一个或多个网络接口114和一个或多个输入/输出(“I/O”)接口116通过总线112提供用于处理器104的外部接口。在一个实施方案中,一个或多个光标控制装置118(诸如鼠标、触控板、图形输入板或类似物)通过I/O接口116与处理器104介接且允许用户操纵光标。在一个实施方案中,一个或多个输入装置120(诸如键盘、小键盘或类似物)通过I/O接口116与处理器104介接且允许用户输入字符、数字、图画和类似物。在一个实施方案中,一个或多个图形用户界面122通过I/O接口116与处理器104介接且允许处理器104显示文字、图形和其它信息。在一个实施方案中,一个或多个输出装置124(诸如打印机、绘图机或类似物)通过I/O接口116与处理器104介接且(例如)允许产生硬拷贝输出。
在一个实施方案中,处理器104通过网络接口114与局域网(“LAN”)126介接。在一个实施方案中,处理器104可通过LAN126与其它计算机通信。在一个实施方案中,处理器可通过LAN126访问因特网128。
在一个实施方案中,实现本文中描述的技术的计算机程序存储在非暂时性计算机可读媒体130(诸如,压缩光盘(“CD”)、数字通用光盘或数字视频光盘(“DVD”)、外部固态硬盘或类似物)上。在一个实施方案中,将媒体130加载至存储装置110(诸如光盘驱动器)中,且从媒体读取计算机程序并将其存储在RAM106、ROM108或另一存储装置110(诸如硬盘驱动器)中。在一个实施方案中,在必要时编译和链接且进一步准备计算机程序以用于执行。在一个实施方案中,计算机程序的可执行图像存储在RAM106、ROM108或另一存储装置110(诸如硬盘驱动器)中。在一个实施方案中,处理器104执行可执行图像,接收来自光标控制118和输入装置120的输入,将数据存储在RAM106和/或ROM108中,且在图形用户界面122和输出装置124上产生输出。
图2中说明的沿着多段线的注解的示例包含多段线205,多段线205包含在节点220处连接的两个相连的线段210和215。注解(即,“标签0”至“标签8”)沿着多段线205排列在注解与其相关联的注解位置处。如可见,注解中的一些重叠。明确地说,标签1与标签0和标签2重叠(使其成为“群集的注解”),标签4与标签3和标签5重叠(使其成为“群集的注解”),且标签7与标签6重叠(使其成为“群集的注解”)。另外,如图2中可见,注解具有不同的字体大小。举例来说,标签0的字体大小比标签2大,标签2的字体大小比标签1大。
在图3中说明的一个实施方案中,多段线205具有头部和尾部。在如图3中说明的一个实施方案中,多段线被划分为从多段线的头部至多段线的尾部连续地编号的逻辑注解槽。每一逻辑注解槽具有槽高度,如图3中所说明。图4中说明注解与逻辑注解槽的相关性。简单地将注解指派给最靠近其相应注解位置的逻辑注解槽将可能增加覆盖张贴,而不是改进覆盖张贴。
在高层,如图5中所说明,用于减少群集的注解的覆盖张贴的技术以通过处理器104接收旨在优化注解的放置的命令(方框505)开始。在一个实施方案中,命令以包含菜单选择、单选按钮、命令行命令等的传统方法中的任一者的形式呈现。或者,命令可在没有用户干预的情况下由程序发布。
在一个实施方案中,技术继续选择逻辑注解槽大小(方框510),这结合图6至8更详细地描述。
在一个实施方案中,技术继续定义逻辑注解槽(方框515),这结合图9更详细地描述。
在一个实施方案中,技术继续将注解指派给槽(方框520),如结合图10更详细地描述。
在一个实施方案中,技术继续将标签展开至附近的槽(方框525),这结合图11更详细地描述。
在一个实施方案中,技术继续使标签滑动以解决覆盖张贴(方框530),这结合图12和13更详细地描述。
在一个实施方案中,将槽索引平移至注解位置(方框535)且显示多段线和所分布的注解(方框540)。
在设计用于选择注解槽大小的技术的一个实施方案时考虑三个约束:
●将所使用的槽的数目减到最少以便将计算时间减到最少,
●将每一槽中未使用的空间量减到最小以便有助于吸引人的绘制,
●将选择注解槽大小所花费的时间量保持为最小值。
所选择的技术是对极其小的范围的优化问题。经由候选槽大小的列表定义和最小化成本函数。限制候选槽大小的数目以将计算槽大小所花费的时间减到最少。应认识到,限制范围可导致对于大范围将不是最佳的,但因为计算时间的所要限制而看作可接受的结果。在一个实施方案中,候选项列表从字体大小得到且包含字体高度中的每一者和高度的因子中的一些。
现将参看图6至8描述用于选择注解槽大小的技术的一个实施方案。在一个实施方案中,选择多个注解槽大小候选项(方框605)。在一个实施方案中,选择多个注解中的每一者的字体大小的高度作为注解槽大小候选项。举例来说,图2中的注解的字体大小有40点(标签0、标签4;其中“点”被定义为英寸的1/72),24点(标签2、标签3和标签5),18点(标签6、标签7和标签8)以及12点(标签1),接着注解槽大小候选项将包含40点、24点、18点和12点。
在一个实施方案中,也选择多个注解中的每一者的字体大小的高度除以因子集合作为注解槽大小候选项。举例来说,在一个实施方案中,整数集合是{2,3,4,5},这意味着40点、24点、18点和12点除以那些整数,从而产生以下不同的(即,舍弃了重复者)注解槽大小候选项(用点表示)的集合:{40,24,20,18,13.333333,12,10,9,8,6,4.5,4,3}。
在一个实施方案中,使用不同的整数集合。在一个实施方案中,使用较大的整数集合。在一个实施方案中,使用较小的整数集合。在一个实施方案中,因子集合包含至少一个实数(即,未必是整数)。
在一个实施方案中,使用用于选择注解槽大小候选项的不同技术,诸如使用在0与最大字体大小之间的数的随机分布。
在一个实施方案中,确定每一注解槽大小候选项的成本(方框610)。定义以下变量:
i指示注解字符串中使用的相应字体;举例来说,图2展示4种字体:对于标签0和标签4,字体i=0;对于标签2、标签3和标签5,字体i=1;对于标签6、标签7和标签8,字体i=2;且对于标签1,字体i=3;
N是注解字符串的总数目;举例来说,图2展示9个注解字符串(标签0、标签1、标签2、标签3、标签4、标签5、标签6、标签7、标签8),因此N=9;
ni是将用每一字体i绘制的注解字符串的数目;对于图2中所展示和上文进一步定义的示例,n0=2,n1=3,n2=3且n3=1;
hi是每一字体i的高度;举例来说,在刚刚论述的示例中,h0=40,h1=24,h2=18且h3=12;在一个实施方案(未展示)中,调整每一字体的高度以考虑与字体相关联的上行字母和下行字母;
m是注解槽大小候选项的数目;在刚刚论述的示例中,m=13;
j表示m个注解槽大小候选项中的每一者;
cj表示每一注解槽大小候选项j的高度;举例来说,在刚刚论述的示例中(高度用点表示,但在一些实施方案中将转换为英寸以用于计算):c0=3,c1=4,c2=4.5,c3=6,c4=8,c5=9,c6=10,c7=12,c8=13.3333,c9=18,c10=20,c11=24,c12=40;
w是用实验方法确定的加权变量且提供一种平衡使每一字体精确地贴合至其槽中且不产生任何额外槽的竞争利益的方式;在一个实施方案中,w=5。
如下计算成本函数Fj,j=1……m(见图7中的方框705,其提供方框610的额外细节):
使P为多段线的总长度(例如,在图3中,P将为沿着多段线205从其头部至其尾部的距离)。在图2中所展示的示例中,P=320点。
使H=Σihini为容纳所有注解所需的最小大小。
将sij定义为使得sijcj>hi的最小整数。这是将用以容纳字体大小为i的一个注解的逻辑注解槽候选项j的槽的数目。
使Aij=sijnicj为用以储存在大小为cj的槽中所储存的大小为i的注解的总空间。
使Aj=ΣiAij为用以容纳注解槽大小候选项j的所有注解的空间。
使为由最小空间H标准化的用于注解槽大小候选项j的增加的空间。
使Tj=Σisijni为注解槽大小候选项j所需的槽的总数目。
使为由槽的最小数目N(其也为注解字符串的总数目)标准化的用于槽大小候选项j的增加的槽。
计算Fj=Wj+wEj作为注解槽大小候选项j,j=1……m的成本(方框705,图7)。
或者,Fj可直接计算为:
F j = Σ i s i j n i c j - Σ i h i n i Σ i h i n i + w Σ i s i j n i - N N
对于图2中所展示的示例,这些计算的结果如下:
候选项:
j=0,3.0点
j=1,4.0点
j=2,4.5点
j=3,6.0点
j=4,8.0点
j=5,9.0点
j=6,10.0点
j=7,12.0点
j=8,13.333333点
j=9,18.0点
j=10,20.0点
j=11,24.0点
j=12,40.0点
候选项j=0,3.0点
高度为40.0的每一注解的槽的数目s00=14
高度为24.0的每一注解的槽的数目s10=8
高度为18.0的每一注解的槽的数目s20=6
高度为12.0的每一注解的槽的数目s30=4
总空间:A0=222.0点,T0=74.0个槽
标准化:E0=0.018348623,W0=7.2222223
成本:F0=7.3139653
候选项j=1,4.0点
高度为40.0的每一注解的槽的数目s01=10
高度为24.0的每一注解的槽的数目s11=6
高度为18.0的每一注解的槽的数目s21=5
高度为12.0的每一注解的槽的数目s31=3
总空间:A1=224.0点,T1=56.0
标准化:E1=0.027522936,W1=5.2222223
成本:F1=5.359837
候选项j=2,4.5点
高度为40.0的每一注解的槽的数目s02=9
高度为24.0的每一注解的槽的数目s12=6
高度为18.0的每一注解的槽的数目s22=4
高度为12.0的每一注解的槽的数目s32=3
总空间:A2=229.5点,T2=51.0个槽
标准化:E2=0.052752294,W2=4.6666665
成本:F2=4.930428
候选项j=3,6.0点
高度为40.0的每一注解的槽的数目s03=7
高度为24.0的每一注解的槽的数目s13=4
高度为18.0的每一注解的槽的数目s23=3
高度为12.0的每一注解的槽的数目s33=2
总空间:A3=222.0点,T3=37.0个槽
标准化:E0=0.018348623,W0=3.1111112
成本:F3=3.2028542
候选项j=4,8.0点
高度为40.0的每一注解的槽的数目s04=5
高度为24.0的每一注解的槽的数目s14=3
高度为18.0的每一注解的槽的数目s24=3
高度为12.0的每一注解的槽的数目s34=2
总空间:A4=240.0点,T4=30.0个槽
标准化:E4=0.10091743,W4=2.3333333
成本:F4=2.8379204
候选项j=5,9.0点
高度为40.0的每一注解的槽的数目s05=5
高度为24.0的每一注解的槽的数目s15=3
高度为18.0的每一注解的槽的数目s25=2
高度为12.0的每一注解的槽的数目s35=2
总空间:A5=243.0点,T5=27.0个槽
标准化:E5=0.1146789,W5=2.0
成本:F5=2.5733945
候选项j=6,10.0点
高度为40.0的每一注解的槽的数目s06=4
高度为24.0的每一注解的槽的数目s16=3
高度为18.0的每一注解的槽的数目s26=2
高度为12.0的每一注解的槽的数目s36=2
总空间:A6=250.0点,T6=25.0个槽
标准化:E6=0.14678898,W6=1.7777778
成本:F6=2.5117226
候选项j=7,12.0点
高度为40.0的每一注解的槽的数目s07=4
高度为24.0的每一注解的槽的数目s17=2
高度为18.0的每一注解的槽的数目s27=2
高度为12.0的每一注解的槽的数目s37=1
总空间:A7=252.0点,T7=21.0个槽
标准化:E7=0.1559633,W7=1.3333334
成本:F7=2.11315
候选项j=8,13.333333点
高度为40.0的每一注解的槽的数目s08=3
高度为24.0的每一注解的槽的数目s18=2
高度为18.0的每一注解的槽的数目s28=2
高度为12.0的每一注解的槽的数目s38=1
总空间:A8=253.33333点,T8=19.0个槽
标准化:E8=0.16207948,W8=1.1111112
成本:F8=1.9215086
候选项j=9,18.0点
高度为40.0的每一注解的槽的数目s09=3
高度为24.0的每一注解的槽的数目s19=2
高度为18.0的每一注解的槽的数目s29=1
高度为12.0的每一注解的槽的数目s39=1
总空间:A9=288.0点,T9=16.0个槽
标准化:E9=0.32110092,W9=0.7777778
成本:F9=2.3832824
候选项j=10,20.0点
高度为40.0的每一注解的槽的数目s010=2
高度为24.0的每一注解的槽的数目s210=2
高度为18.0的每一注解的槽的数目s310=1
高度为12.0的每一注解的槽的数目s410=1
总空间:A10=280.0点,T10=14.0个槽
标准化:E10=0.28440368,W10=0.5555556
成本:F10=1.977574
候选项j=11,24.0点
高度为40.0的每一注解的槽的数目s011=2
高度为24.0的每一注解的槽的数目s111=1
高度为18.0的每一注解的槽的数目s211=1
高度为12.0的每一注解的槽的数目s311=1
总空间:A11=264.0点,T11=11.0个槽
标准化:E11=0.21100917,W11=0.22222222
成本:F11=1.277268
候选项j=12,40.0点
高度为40.0的每一注解的槽的数目s012=1
高度为24.0的每一注解的槽的数目s112=1
高度为18.0的每一注解的槽的数目s212=1
高度为12.0的每一注解的槽的数目s312=1
总空间:A12=360.0点,A12=9.0个槽
标准化:E12=0.6513761,A12=0.0
成本:F12=3.2568808
在一个实施方案中,技术基于成本Fj,j=0……m而选择注解槽大小(方框615),如图8中更详细地展示。
在一个实施方案中,将注解槽大小候选项划分为两个组(方框805)。在一个实施方案中,第一组包含Aj≤P的那些注解槽大小候选项。那些是文字将紧挨着多段线贴合的注解槽大小候选项。在上文所展示的示例中,第一组包含除了候选项j=12之外的所有注解槽大小候选项,对于候选项j=12,A12=360,其大于P=320。在一个实施方案中,这是注解槽大小候选项的优选组。
在一个实施方案中,第二组包含Aj>P的那些注解槽大小候选项。那些是文字将不紧挨着多段线贴合而不会覆盖张贴的候选项。在上文所展示的示例中,第二组包含注解槽大小候选项j=12。这些将仅在第一组中不存在注解槽大小候选项时被使用。
在一个实施方案中,如果第一组不是空的(方框810的“否”分支),意味着存在注解将紧挨着多段线贴合的注解槽大小候选项,那么选择第一组中具有最低成本Fj的注解槽大小候选项j的高度cj(方框815)作为注解槽大小K。在上文所展示的示例中,第一组不是空的且具有最低成本Fj的注解槽大小候选项是槽大小为24点的候选项j=11。
如果第一组是空的(方框810的“是”分支),意味着不存在注解将紧挨着多段线贴合的注解槽大小候选项,那么执行以下处理。将L设置为第二组中具有最低成本Fj的注解槽大小候选项j的高度cj(方框820)。接着通过应用以下函数而基于L按比例缩放注解槽大小K,使得注解紧挨着多段线贴合(方框825):
K = L × A j P
返回图5,在一个实施方案中,技术继续定义逻辑注解槽(方框515)。在图9中说明的一个实施方案中,逻辑注解槽的数目通过将多段线的总长度P除以计算出的注解槽大小K且舍位为下一最小整数来确定(方框905)。举例来说,如果P=12.5且K=1,那么P/K=12.5且逻辑槽的数目将为12(12.5舍位为下一最小整数)。
图3和4中说明的逻辑注解槽是针对图2中说明的多段线205和注解使用此技术得到的。
在一个实施方案中,槽的开始深度是线的总长度与逻辑注解槽的总长度之间的差的一半。举例来说,如果P=12.5且K=1,那么逻辑注解槽的数目是12,逻辑注解槽的总长度是12英寸,且槽的开始深度是0.25英寸((12.5–12)/2)
在一个实施方案中,逻辑注解槽的顶部深度可通过将那个逻辑注解槽的注解槽索引乘以槽高度再加上开始深度而得到。举例来说,参看图3且假设(a)槽高度是1英寸,(b)逻辑注解槽3的注解槽索引是3,且(c)开始深度是0,那么注解槽3的顶部深度是3英寸。
在一个实施方案中,逻辑注解槽的底部深度可通过将那个逻辑注解槽的注解槽索引增加一,将结果乘以槽高度再加上开始深度而得到。举例来说,参看图3且假设(a)槽高度是1英寸,(b)注解槽3的注解槽索引是3,且(c)开始深度是0,那么逻辑注解槽3的底部深度是4英寸。
在一个实施方案中,通过将注解位置与逻辑注解槽的顶部深度和底部深度进行比较而确定每一注解的逻辑注解槽(方框520,见图5)(方框910,见图9)。举例来说,参看图4,假设“标签0”注解的注解位置是3.5英寸。那个注解位置在逻辑注解槽3的底部深度与顶部深度之间。因此,将注解“标签0”指派给逻辑注解槽3。
在一个实施方案中,用注解占据的逻辑注解槽中的每一者的项目创建逻辑槽记录的表(方框915,见图9)。在一个实施方案中,如果注解高于单一逻辑注解槽,那么增加在优化步骤中针对那个注解计算的槽位置的编号。在一个实施方案中,如果因为沿着多段线缺少空间而调整槽大小,那么使用先前计算的槽位置的编号。
图10中说明了在“之前”标题下的逻辑槽记录的此表的示例,其为使用图4所示的示例得到的。如可见,表包含11个记录,每一记录具有“记录”列中包含的唯一编号(即,0至10)。“标签”列通过索引识别标签。“槽”列识别那个行的注解或标签与其相关联的逻辑注解槽。举例来说,记录0和1指示标签0被指派给逻辑注解槽3,且因为存在两个记录,所以其将横跨两个逻辑注解槽。记录2指示标签1被指派给逻辑注解槽3。记录3指示标签2被指派给逻辑注解槽4。记录4指示标签3被指派给逻辑注解槽5。记录5和6指示标签4被指派给逻辑注解槽5,且因为存在两个记录,所以其将横跨两个逻辑注解槽。记录7指示标签5被指派给逻辑注解槽6。记录8指示标签6被指派给逻辑注解槽8。记录9指示标签7被指派给逻辑注解槽8。记录10指示标签8被指派给逻辑注解槽9。
在一个实施方案中,覆盖张贴在图10中的“之前”表中是明显的。两个标签被指派给槽3、5和8中的每一者。
在一个实施方案中,技术继续调整注解的注解位置,使得注解中的每一者落入不被任何其它注解占据的槽的范围中。在一个实施方案中,这通过在逻辑槽记录的表中找到位于相同的计算出的槽中的标签的组且将那些组中的注解重新指派到邻近槽中(如果有空间的话)而不移动任何相邻注解而完成。接着,在一个实施方案中,重复地处理逻辑槽记录的表,直到逻辑注解槽不改变为止。在一个实施方案中,对于每一次通过,将逻辑槽记录的表中的一对记录进行比较以确定一者或另一者是否应调整。
返回图5,调整注解位置的过程开始于将标签展开至附近的槽(方框525),这在图11中更详细地展示。过程进入循环且开始于将下一未处理的记录辨识为当前记录(方框1105)。使用图10中展示的示例表,将记录0辨识为第一个通过循环的当前记录。在后续通过循环时,将相继记录(即,记录1、2、3等)辨识为当前记录。
过程接着找到与当前记录共享逻辑注解槽的记录组(方框1110)。使用图10中所示的示例表,当记录0是当前记录时,过程将发现记录0(标签0)与记录1(标签0)和记录2(标签1)共享逻辑注解槽3。当记录4是当前记录时,过程将发现记录4(标签3)与记录5(标签4)和记录6(标签4)共享逻辑注解槽5。当记录8是当前记录时,过程将发现记录8(标签6)与记录9(标签7)共享逻辑注解槽8。其它记录(记录3、4、7和10)不与其它记录共享逻辑注解槽。
过程接着确定在组中存在一个以上记录(方框1115的“是”分支)且找到较靠近头部的具有不同槽索引的第一记录(方框1120)。使用图10中所示的示例表,当记录0是当前记录时,不存在此类记录且“较靠近头部的具有不同槽索引的第一记录”被设置为0。当记录4是当前记录时,“较靠近头部的具有不同槽索引的第一记录”是记录3。当记录8是当前记录时,“较靠近头部的具有不同槽索引的第一记录”是记录7。
过程接着找到较靠近尾部的具有不同槽索引的第一记录(方框1125)。使用图10中所示的示例表,当记录0是当前记录时,“较靠近尾部的具有不同槽索引的第一记录”是槽索引为4的记录3。当记录4是当前记录时,“较靠近尾部的具有不同槽索引的第一记录”是记录7。当记录8是当前记录时,“较靠近头部的具有不同槽索引的第一记录”是记录10。
过程接着确定周围的记录的标签索引的差是否大于组的大小(方框1130)。以下表1说明了图10中的示例表所展示的三个组的情形。应注意,每一组的“在组的头部端的槽”是前一行加一中的“槽”且“在组的尾部端的槽”是下一行中的“槽”。
表1
从表1可见,将对(0、1、2)组和(8,9)组采用方框1130的“是”分支,且将对(4、5、6)组采用方框1130的“否”分支。
在一个实施方案中,如果采用方框1130的“是”分支,那么将会将新的槽指派给组中的所有记录,从而将其保持在周围记录界定的范围中(方框1135)。在一个实施方案中,这通过以下动作完成:首先试图通过将槽中的注解的数目除以二(使用整数除法)而使注解位于中心且使具有最低记录编号的注解滑动所述编号个槽且使具有最高记录编号的注解向上滑动所述编号个槽且接着填充进去。举例来说,假设下文表2中所示的情形(其与到这时论述的示例无关):
记录 标签
0 0 1
1 1 5
2 2 5
3 3 5
4 4 5
5 5 5
6 6 10
表2
如可见,记录1至5已都被指派给槽5。将槽5中的注解的数目,其为5除以2(使用整数除法),产生结果“2”。在任一方向上都存在将注解移动那个量的空间。结果展示于表3中:
记录 标签
0 0 1
1 1 3
2 2 4
3 3 5
4 4 6
5 5 7
6 6 10
表3
标签3保留在槽5中。标签1朝头部移动至槽3。标签4朝头部向头部移动至槽4。标签4朝尾部移动至槽6。标签5朝尾部移动至槽7。
在一个实施方案中,如果在尾部的方向上不存在足够空间来朝尾部展开注解,那么朝头部尽可能均匀地展开注解。采用表4中所示的示例,其与表2中的示例相同,除了标签6已被指派给槽7而不是槽10。
记录 标签
0 0 1
1 1 5
2 2 5
3 3 5
4 4 5
5 5 5
6 6 7
表4
与表2一样,有5个注解被指派给槽5。没有足够空间来朝尾部展开,这是因为在槽5与尾部之间仅存在一个开放的槽(槽6),这意味着注解偏向头部尽可能均匀地展开。在一个实施方案中,这通过使展开注解的中心朝头部偏移而完成。结果如下表5中所示。
记录 标签
0 0 1
1 1 2
2 2 3
3 3 4
4 4 5
5 5 6
6 6 7
表5
标签4(而不是如前一示例中的标签3)保留在槽5中。标签1朝头部移动3个槽(5/2(整数)+n;n=1;后续尝试可增加n)至槽2。标签2朝头部移动至槽3。标签3朝头部移动至槽4。标签5朝尾部移动至槽6。
在一个实施方案中,如果在头部的方向上不存在足够空间来朝尾部展开注解,那么朝尾部尽可能均匀地展开注解。采用表6中所示的示例。
记录 标签
0 0 3
1 1 5
2 2 5
3 3 5
4 4 5
5 5 5
6 6 10
表6
与表2一样,有5个注解被指派给槽5。没有足够空间来朝头部展开,这是因为在槽5与尾部之间仅存在一个开放的槽(槽4),这意味着注解必须偏向尾部尽可能均匀地展开。结果如下表7中所示:
记录 标签
0 0 3
1 1 4
2 2 5
3 3 6
4 4 7
5 5 8
6 6 10
表7
标签2保留在槽5中。标签5朝尾部移动3个槽(5/2(整数)+n;n=1;后续尝试可增加n)至槽8。标签1朝头部移动至槽4。标签3朝尾部移动至槽6。标签4朝尾部移动至槽7。标签5朝尾部移动至槽8。
返回图10中所示的示例表和表1,(0、1、2)组具有3个成员且想要在每一方向上移动1个(3/2整数)槽。在尾部方向上没有空间,因此(0、1、2)记录分别移动至(1、2、3)槽。类似地,(8、9)组具有两个成员且想要在每一方向上移动1个(2/2)槽。在头部方向上没有空间,因此(8、9)记录分别移动至(8、9)槽。
在一个实施方案中,过程接着确定是否已检查所有标签(方框1140)。如果尚未检查所有标签(方框1140的“否”分支),那么处理返回至方框1105以用于下一未处理的记录。在一个实施方案中,一旦处理组中的一个记录,就处理所述组中的所有记录。因此,举例来说,在处理0、1、2记录中的0记录之后,1和2记录也视为被处理。在一个实施方案中,如果采用方框1130的“否”分支,那么如上文所描述处理方框1140。如果已检查所有标签(方框1140的“是”分支),那么过程的此部分结束。所得中间表展示于下表8中。
记录 标签
0 0 1
1 0 2
2 1 3
3 2 4
4 3 5
5 4 5
6 4 5
7 5 6
8 6 7
9 7 8
10 8 9
表8
返回图5,过程继续使标签滑动以解决覆盖张贴(方框530),这在图12中更详细地展示。处理以第一记录开始(方框1205)。举例来说,使用表8中所示的示例,处理以记录0开始。
过程进入循环且获得当前记录(方框1210)。对于(例如)表8中展示的示例,在第一次通过循环时,过程将获得记录0。
过程接着确定当前记录的槽索引是否小于最小槽位置(方框1215)。如果是(方框1215的“是”分支),那么将当前记录的槽索引增大一(方框1220)。如果否(方框1215的“否”分支),那么过程确定当前记录的槽索引是否大于最大槽位置(方框1225)。如果是(方框1225的“是”分支),那么将当前记录的槽索引减小一(方框1230)。如果否,那么过程确定当前记录的记录编号是否小于最小槽位置(方框1235)。如果是(方框1235的“是”分支),那么过程读取对中的第二记录(方框1240)且继续“处理一对记录”过程(方框1245),这结合图13更详细地描述。
在完成方框1220、方框1230或方框1245时,或如果当前记录的记录编号不小于最大记录编号(方框1235的“否”分支),那么过程确定是否已处理所有记录(方框1250)。如果还没(方框1250的“否”分支),那么过程移动至下一当前记录(方框1255)且处理返回至方框1210。
如果已处理所有记录(方框1250的“是”分支),那么过程确定在此次通过记录时任何记录是否改变(方框1260)。如果记录改变(方框1260的“是”分支),那么处理返回至方框1205。如果此次通过无记录改变(方框1260的“否”分支),那么滑动标签以解决覆盖张贴的过程结束。
图13中更详细地说明的“处理一对记录”过程(方框1245)开始于确定第一记录的槽索引是否小于第二记录的槽索引(方框1305)。如果是(方框1305的“是”分支),那么“处理一对记录”过程结束。
如果否(方框1305的“否”分支),那么过程确定第二记录的槽索引是否大于或等于最大有效槽索引(方框1310)。如果是(方框1310的“是”分支),那么将第一记录的槽索引减小一(方框1315)且“处理一对记录”过程结束。
如果否(方框1310的“否”分支),那么过程确定第一记录的槽索引是否小于第二记录的记录索引(方框1320)。如果是(方框1320的“是”分支),那么将第二记录的槽索引增大一(方框1325)且“处理一对记录”过程结束。
如果否(方框1320的“否”分支),那么过程确定在第二记录之后在记录的列表中是否存在第三记录(方框1330)。如果否(方框1330的“否”分支),那么将第二记录的槽索引增大一(方框1335)且“处理一对记录”过程结束。
如果存在(方框1330的“是”分支),那么过程获得第三记录(方框1340)且确定第二记录的槽索引是否大于一小于第三记录的槽索引(方框1345)。如果是(方框1345的“是”分支),那么将第二记录的槽索引增大一(方框1350)且“处理一对记录”过程结束。如果否(方框1340的“否”分支),那么将第一记录的槽索引减小一(方框1355)且“处理一对记录”过程结束。
结果是已被操纵用来解决覆盖张贴问题的逻辑槽记录的表,如图10中的“之后”表所说明。
图12和13中说明的过程从开始到执行方框1260的第一次“是”分支在应用于表8中所示的表时展示于下文:
开始数据:1、2、3、4、5、5、5、6、7、8、9
最小记录:0
记录数目:11
最小槽:0
槽数目:13
1210获得当前记录--当前索引:0,当前槽:1
1215否
1225否
1235是
1240获得第二记录以配成对--第二索引:1,第二槽:2
1245处理一对记录
1305:是--不需要解决方案
通过之后的数据:1、2、3、4、5、5、5、6、7、8、9
1210获得当前记录--当前索引:1,当前槽:2
1215否
1225否
1235是
1240获得第二记录以配成对--第二索引:2,第二槽:3
1245处理一对记录
1305:是--不需要解决方案
通过之后的数据:1、2、3、4、5、5、5、6、7、8、9
1210获得当前记录--当前索引:2,当前槽:3
1215否
1225否
1235是
1240获得第二记录以配成对--第二索引:3,第二槽:4
1245处理一对记录
1305:是--不需要解决方案
通过之后的数据:1、2、3、4、5、5、5、6、7、8、9
1210获得当前记录--当前索引:3,当前槽:4
1215否
1225否
1235是
1240获得第二记录以配成对--第二索引:4,第二槽:5
1245处理一对记录
1305:是--不需要解决方案
通过之后的数据:1、2、3、4、5、5、5、6、7、8、9
1210获得当前记录--当前索引:4,当前槽:5
1215否
1225否
1235是
1240获得第二记录以配成对--第二索引:5,第二槽:5
1245处理一对记录
1305否
1310否
1320否
1330是
1340读取第三记录--第三索引:6,第三槽:5
1345否
1355将对中的第一记录的槽索引减小1。
通过之后的数据:1、2、3、4、4、5、5、6、7、8、9
1210获得当前记录--当前索引:5,当前槽:5
1215否
1225否
1235是
1240获得第二记录以配成对--第二索引:6,第二槽:5
1245处理一对记录
1305否
1310否
1320是
1325将对中的第二记录的槽索引增大1。
通过之后的数据:1、2、3、4、4、5、6、6、7、8、9
1210获得当前记录--当前索引:6,当前槽:6
1215否
1225否
1235是
1240获得第二记录以配成对--第二索引:7,第二槽:6
1245处理一对记录
1305否
1310否
1320是
1325将对中的第二记录的槽索引增大1。
通过之后的数据:1、2、3、4、4、5、6、7、7、8、9
1210获得当前记录--当前索引:7,当前槽:7
1215否
1225否
1235是
1240获得第二记录以配成对--第二索引:8,第二槽:7
1245处理一对记录
1305否
1310否
1320是
1325将对中的第二记录的槽索引增大1。
通过之后的数据:1、2、3、4、4、5、6、7、8、8、9
1210获得当前记录--当前索引:8,当前槽:8
1215否
1225否
1235是
1240获得第二记录以配成对--第二索引:9,第二槽:8
1245处理一对记录
1305否
1310否
1320是
1325将对中的第二记录的槽索引增大1。
通过之后的数据:1、2、3、4、4、5、6、7、8、9、9
1210获得当前记录--当前索引:9,当前槽:9
1215否
1225否
1235是
1240获得第二记录以配成对--第二索引:10,第二槽:9
1245处理一对记录
1305否
1310否
1320是
1325将对中的第二记录的槽索引增大1。
通过之后的数据:1、2、3、4、4、5、6、7、8、9、10
1210获得当前记录--当前索引:10,当前槽:10
1235:否--最后一个记录,没有对。
通过之后的数据:1、2、3、4、4、5、6、7、8、9、10
结果展示于下表9中。
记录 标签
0 0 1
1 0 2
2 1 3
3 2 4
4 3 4
5 4 5
6 4 6
7 5 7
8 6 8
9 7 9
10 8 10
表9
返回图5,在一个实施方案中,将槽索引平移至注解位置(方框535)。在一个实施方案中,这通过如上文所描述确定顶部和底部深度而完成。在一个实施方案中,通过将下行字母的高度加至槽的底部深度来确定那个槽中的注解的基线的深度。在一个实施方案中,使用槽的中心。在一个实施方案中,接着从原始多段线确定文字的开始点的x/y坐标。
在一个实施方案中,对隔离的标签(即,指派给不具有指派给邻近槽的标签的一个或多个槽的标签)审查逻辑槽记录的表。在一个实施方案中,此类标签的注解位置不改变。在一个实施方案中,接着在图形用户界面122上显示多段线和所分布的注解(方框540)。图14中展示已应用上述技术之后的具有注解槽的图2至4中所示的带注解的多段线的示例,且图15中展示已应用上述技术之后的没有注解槽的图2至4中所示的带注解的多段线的示例,其为它将在图形用户界面122上出现的样子。
另一示例进一步说明图13中展示的过程。假设图12和13的过程应用于下表10:
记录
0 12
1 12
2 7
3 7
4 9
5 11
6 11
表10
如可见,记录0和1的槽索引大于预期的最大值。另外,关于记录2和3,存在朝头部移动记录2的空间,存在朝尾部移动记录3的空间,所述记录不在记录列表的结尾,且在记录3与记录4之间的槽索引中存在间隙。关于记录5和6,其在记录列表的结尾且数据有效。
表10的处理从开始到执行方框1260的第一次“是”分支如下进行:
开始数据:12、12、7、7、9、11、11
最小记录:0
记录数目:7
最小槽:0
槽数目:13
1210获得当前记录--当前索引:0,当前槽:12
1215否
1225否
1235是
1240获得第二记录以配成对--第二索引:1,第二槽:12
1245处理一对记录
1305否
1310是
1315将对中的第一记录的槽索引减小1。
通过之后的数据:11、12、7、7、9、11、11
1210获得当前记录--当前索引:1,当前槽:12
1215否
1225否
1235是
1240获得第二记录以配成对--第二索引:2,第二槽:7
1245处理一对记录
1305否
1310否
1320否
1330是
1340读取第三记录--第三索引:3,第三槽:7
1345否
1355将对中的第一记录的槽索引减小1。
通过之后的数据:11、11、7、7、9、11、11
1210获得当前记录--当前索引:2,当前槽:7
1215否
1225否
1235是
1240获得第二记录以配成对--第二索引:3,第二槽:7
1245处理一对记录
1305否
1310否
1320否
1330是
1340读取第三记录--第三索引:4,第三槽:9
1345是
1355将对中的第二记录的槽索引增大1。
通过之后的数据:11、11、7、8、9、11、11
1210获得当前记录--当前索引:3,当前槽:8
1215否
1225否
1235是
1240获得第二记录以配成对--第二索引:4,第二槽:9
1245处理一对记录
1305:是--不需要解决方案
通过之后的数据:11、11、7、8、9、11、11
1210获得当前记录--当前索引:4,当前槽:9
1215否
1225否
1235是
1240获得第二记录以配成对--第二索引:5,第二槽:11
1245处理一对记录
1305:是--不需要解决方案
通过之后的数据:11、11、7、8、9、11、11
1210获得当前记录--当前索引:5,当前槽:11
1215否
1225否
1235是
1240获得第二记录以配成对--第二索引:6,第二槽:11
1245处理一对记录
1305否
1310否
1320否
1330否
1335将对中的第二记录的槽索引增大1。
通过之后的数据:11、11、7、8、9、11、12
1210获得当前记录--当前索引:6,当前槽:12
1235:否--最后一个记录,没有对。
通过之后的数据:11、11、7、8、9、11、12
结果展示于表11中:
记录 标签
0 11
1 11
2 7
3 8
4 9
5 11
6 12
表11
图16说明在应用上述技术之前的多段线和注解。图17说明在应用技术之后的图16的多段线和注解。注解如此密集和大,以致尽管注解在图17中较易于阅读,但其仍重叠。
上述技术可应用于多种工业中。一个示例是石油工业。图18展示类似于多段线205的钻井日志表,和已使用上述技术沿着钻井日志表布置的注解(例如,“(LGC)241”、“(LGC)250”等)。图19展示三个钻井日志表和已沿着钻井日志表布置的相关联的注解。
另一应用是建筑图纸,其中关于建筑物的结构元素的注解可使用此技术布置。
另一应用是工程图纸,其中关于机器中的组件的注解可使用此技术布置。
本文中的词语“耦接”意味着直接连接或间接连接。
本文中的动词“绘制”意在表示于图形用户界面122上且不限于任何特定图形技术或软件。
以上文字描述较宽的发明的一个或多个特定实施方案。本发明还在多种替代实施方案中执行且因此不限于本文描述的实施方案。呈现本发明的实施方案的以上描述以用于说明和描述的目的。其不希望为详尽的或将本发明限于所公开的精确形式。根据以上教示许多修改和变化是可能的。希望本发明的范围不受此详细描述限制,而是由所附权利要求书限制。

Claims (36)

1.一种方法,其包括:
在处理器处接收旨在优化图形用户界面上所显示的多个注解沿着多段线的放置的命令,其中所述多个注解具有多个字体大小且每一字体大小具有高度;
沿着所述多段线为逻辑注解槽选择多个注解槽大小候选项;
从所述多个注解槽大小候选项中选择注解槽大小,其中所述所选择的注解槽大小小于所述字体大小中的最大者;
将所述多段线划分为具有所述所选择的注解槽大小的逻辑注解槽;
使所述多个注解分布在所述逻辑注解槽之中;以及
在所述图形用户界面上显示所述多段线和所述所分布的多个注解。
2.如权利要求1所述的方法,其中选择多个注解槽大小候选项包括:
选择以下项作为候选槽大小:
所述多个注解中的每一者的所述字体大小的所述高度,以及
所述多个注解中的每一者的所述字体大小的所述高度除以整数集合。
3.如权利要求1所述的方法,其中所述整数集合包括2、3、4和5。
4.如权利要求1所述的方法,其中选择注解槽大小包括:
对于j=1……m,计算成本Fj
F j = Σ i s i j n i c j - Σ i h i n i Σ i h i n i + w Σ i s i j n i - N N
其中:
m是注解槽大小候选项的数目;
Fj是注解槽大小候选项j的成本;
cj是注解槽大小候选项j的高度;
i指示每一相应字体大小;
N是所述多个注解的总数目;
ni是以每一相应字体i呈现的注解的数目;
hi是每一字体i的高度;
sij是使得sijcj>hi的最小整数;且
w是加权变量。
5.如权利要求4所述的方法,其中选择注解槽大小包括基于所述成本Fj选择所述注解槽大小。
6.如权利要求1所述的方法,其中选择所述注解槽大小进一步包括:
将所述注解槽大小候选项划分为两个组:
其中Σisijnicj≤P的第一组,以及
其中Σisijnicj>P的第二组,
其中:
cj是注解槽大小候选项j的高度;
i指示每一相应字体大小;
ni是以每一相应字体i呈现的注解的数目;
hi是每一字体i的高度;
sij是使得sijcj>hi的最小整数;且
P是所述多段线的总长度。
7.如权利要求6所述的方法,其中选择所述注解槽大小包括:
确定所述第一组不是空的;以及
将注解槽大小K设置为所述第一组中具有最小成本的注解槽大小候选项的大小。
8.如权利要求6所述的方法,其中选择所述注解槽大小包括:
确定所述第一组是空的;
设置L=所述第二组中具有最小成本的注解槽大小候选项j=r的高度cr;以及
将所述注解槽大小设置为
9.如权利要求1所述的方法,其中使所述多个注解分布在所述槽之中包括:
将所述多个注解中的一者指派给多个邻近的逻辑注解槽。
10.一种方法,其包括:
在处理器处接收旨在优化图形用户界面上所显示的多个注解沿着多段线的放置的命令,其中所述多个注解具有多个字体大小且每一字体大小具有高度;
沿着所述多段线为逻辑注解槽选择多个注解槽大小候选项;
从所述多个注解槽大小候选项中选择注解槽大小;
将所述多段线划分为具有所述所选择的注解槽大小的逻辑注解槽;
使所述多个注解分布在所述槽之中,以便将所述多个注解中的一者指派给多个邻近的逻辑注解槽;以及
在所述图形用户界面上显示所述多段线和所述所分布的多个注解。
11.如权利要求10所述的方法,其中选择多个注解槽大小候选项包括:
选择以下项作为候选槽大小:
所述多个注解中的每一者的所述字体大小的所述高度,以及
所述多个注解中的每一者的所述字体大小的所述高度除以整数集合。
12.如权利要求10所述的方法,其中所述整数集合包括2、3、4和5。
13.如权利要求10所述的方法,其中选择注解槽大小包括:
对于j=1……m,计算成本Fj
F j = Σ i s i j n i c j - Σ i h i n i Σ i h i n i + w Σ i s i j n i - N N
其中:
m是注解槽大小候选项的数目;
Fj是注解槽大小候选项j的成本;
cj是注解槽大小候选项j的高度;
i指示每一相应字体大小;
N是所述多个注解的总数目;
ni是以每一相应字体i呈现的注解的数目;
hi是每一字体i的高度;
sij是使得sijcj>hi的最小整数;且
w是加权变量。
14.如权利要求13所述的方法,其中选择注解槽大小包括基于所述成本Fj选择所述注解槽大小。
15.如权利要求10所述的方法,其中选择所述注解槽大小进一步包括:
将所述注解槽大小候选项划分为两个组:
其中Σisijnicj≤P的第一组,以及
其中Σisijnicj>P的第二组,
其中:
cj是注解槽大小候选项j的高度;
i指示每一相应字体大小;
ni是以每一相应字体i呈现的注解的数目;
hi是每一字体i的高度;
sij是使得sijcj>hi的最小整数;且
P是所述多段线的总长度。
16.如权利要求15所述的方法,其中选择所述注解槽大小包括:
确定所述第一组不是空的;以及
将注解槽大小K设置为所述第一组中具有最小成本的注解槽大小候选项的大小。
17.如权利要求15所述的方法,其中选择所述注解槽大小包括:
确定所述第一组是空的;
设置L=所述第二组中具有最小成本的注解槽大小候选项j=r的高度cr;以及
将所述注解槽大小设置为
18.如权利要求10所述的方法,其中所述所选择的注解槽大小小于所述字体大小中的最大者。
19.一种存储在非暂时性计算机可读存储媒体中的计算机程序,所述程序包括使计算机执行以下操作的可执行指令:
在处理器处接收旨在优化图形用户界面上所显示的多个注解沿着多段线的放置的命令,其中所述多个注解具有多个字体大小且每一字体大小具有高度;
为沿着所述多段线的逻辑注解槽选择多个注解槽大小候选项;
从所述多个注解槽大小候选项中选择注解槽大小,其中所述所选择的注解槽大小小于所述字体大小中的最大者;
将所述多段线划分为具有所述所选择的注解槽大小的逻辑注解槽;
使所述多个注解分布在所述逻辑注解槽之中;以及
在所述图形用户界面上显示所述多段线和所述所分布的多个注解。
20.如权利要求19所述的计算机程序,其中当选择多个注解槽大小候选项时,所述计算机执行以下操作:
选择以下项作为候选槽大小:
所述多个注解中的每一者的所述字体大小的所述高度,以及
所述多个注解中的每一者的所述字体大小的所述高度除以
整数集合。
21.如权利要求19所述的计算机程序,其中所述整数集合包括2、3、4、5。
22.如权利要求19所述的计算机程序,其中当选择注解槽大小时,所述计算机执行以下操作:
对于j=1……m,计算成本Fj
F j = Σ i s i j n i c j - Σ i h i n i Σ i h i n i + w Σ i s i j n i - N N
其中:
m是注解槽大小候选项的数目;
Fj是注解槽大小候选项j的成本;
cj是注解槽大小候选项j的高度;
i指示每一相应字体大小;
N是所述多个注解的总数目;
ni是以每一相应字体i呈现的注解的数目;
hi是每一字体i的高度;
sij是使得sijcj>hi的最小整数;且
w是加权变量。
23.如权利要求22所述的计算机程序,其中当选择注解槽大小时,所述计算机基于所述成本Fj选择所述注解槽大小。
24.如权利要求19所述的计算机程序,其中当选择所述注解槽大小时,所述计算机进一步执行以下操作:
将所述注解槽大小候选项划分为两个组:
其中Σisijnicj≤P的第一组,以及
其中Σisijnicj>P的第二组,
其中:
cj是注解槽大小候选项j的高度;
i指示每一相应字体大小;
ni是以每一相应字体i呈现的注解的数目;
hi是每一字体i的高度;
sij是使得sijcj>hi的最小整数;且
P是所述多段线的总长度。
25.如权利要求24所述的计算机程序,其中当选择所述注解槽大小时,所述计算机执行以下操作:
确定所述第一组不是空的;以及
将注解槽大小K设置为所述第一组中具有最小成本的注解槽大小候选项的大小。
26.如权利要求24所述的计算机程序,其中当选择所述注解槽大小时,所述计算机执行以下操作:
确定所述第一组是空的;
设置L=所述第二组中具有最小成本的注解槽大小候选项j=r的高度cr;以及
将所述注解槽大小设置为
27.如权利要求19所述的计算机程序,其中当使所述多个注解分布在所述槽之中时,所述计算机执行以下操作:
将所述多个注解中的一者指派给多个邻近的逻辑注解槽。
28.一种存储在非暂时性计算机可读存储媒体中的计算机程序,所述程序包括使计算机进行以下操作的可执行指令:
在处理器处接收旨在优化图形用户界面上所显示的多个注解沿着多段线的放置的命令,其中所述多个注解具有多个字体大小且每一字体大小具有高度;
沿着所述多段线为逻辑注解槽选择多个注解槽大小候选项;
从所述多个注解槽大小候选项中选择注解槽大小;
将所述多段线划分为具有所述所选择的注解槽大小的逻辑注解槽;
使所述多个注解分布在所述槽之中,以便将所述多个注解中的一者指派给多个邻近的逻辑注解槽;以及
在所述图形用户界面上显示所述多段线和所述所分布的多个注解。
29.如权利要求28所述的计算机程序,其中当选择多个注解槽大小候选项时,所述计算机执行以下操作:
选择以下项作为候选槽大小:
所述多个注解中的每一者的所述字体大小的所述高度,以及
所述多个注解中的每一者的所述字体大小的所述高度除以整数集合。
30.如权利要求28所述的计算机程序,其中所述整数集合包括2、3、4、5。
31.如权利要求28所述的计算机程序,其中当选择注解槽大小时,所述计算机执行以下操作:
对于j=1……m,计算成本Fj
F j = Σ i s i j n i c j - Σ i h i n i Σ i h i n i + w Σ i s i j n i - N N
其中:
m是注解槽大小候选项的数目;
Fj是注解槽大小候选项j的成本;
cj是注解槽大小候选项j的高度;
i指示每一相应字体大小;
N是所述多个注解的总数目;
ni是以每一相应字体i呈现的注解的数目;
hi是每一字体i的高度;
sij是使得sijcj>hi的最小整数;且
w是加权变量。
32.如权利要求31所述的计算机程序,其中当选择注解槽大小时,所述计算机基于所述成本Fj选择所述注解槽大小。
33.如权利要求28所述的计算机程序,其中当选择注解槽大小时,所述计算机进一步执行以下操作:
将所述注解槽大小候选项划分为两个组:
其中Σisijnicj≤P的第一组,以及
其中Σisijnicj>P的第二组,
其中:
cj是注解槽大小候选项j的高度;
i指示每一相应字体大小;
ni是以每一相应字体i呈现的注解的数目;
hi是每一字体i的高度;
sij是使得sijcj>hi的最小整数;且
P是所述多段线的总长度。
34.如权利要求33所述的计算机程序,其中当选择所述注解槽大小时,所述计算机执行以下操作:
确定所述第一组不是空的;以及
将注解槽大小K设置为所述第一组中具有最小成本的注解槽大小候选项的大小。
35.如权利要求33所述的计算机程序,其中当选择所述注解槽大小时,所述计算机执行以下操作:
确定所述第一组是空的;
设置L=所述第二组中具有最小成本的注解槽大小候选项j=r的高度cr;以及
将所述注解槽大小设置为
36.如权利要求28所述的计算机程序,其中当使所述多个注解分布在所述槽之中时,所述计算机执行以下操作:
将所述多个注解中的一者指派给多个邻近的逻辑注解槽。
CN201380075157.4A 2013-04-29 2013-04-29 优化群集的结构注解的放置 Pending CN105210053A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/038602 WO2014178816A1 (en) 2013-04-29 2013-04-29 Optimizing the placement of clustered textural annotations

Publications (1)

Publication Number Publication Date
CN105210053A true CN105210053A (zh) 2015-12-30

Family

ID=51843795

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380075157.4A Pending CN105210053A (zh) 2013-04-29 2013-04-29 优化群集的结构注解的放置

Country Status (10)

Country Link
US (1) US10042833B2 (zh)
EP (1) EP2951724A4 (zh)
CN (1) CN105210053A (zh)
AU (1) AU2013388122B2 (zh)
BR (1) BR112015024112A2 (zh)
CA (1) CA2906324C (zh)
MX (1) MX2015013966A (zh)
RU (1) RU2015139929A (zh)
SG (1) SG11201506562WA (zh)
WO (1) WO2014178816A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11262893B1 (en) * 2018-11-07 2022-03-01 Allscripts Software, Llc Apparatus, system and method for generating custom workspaces in a medical computer system environment
CN111597467A (zh) * 2020-05-08 2020-08-28 北京字节跳动网络技术有限公司 展示方法、装置和电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0965925A2 (en) * 1998-06-17 1999-12-22 Xerox Corporation Overlay presentation of textual and graphical annotations
US20060058949A1 (en) * 2004-09-10 2006-03-16 Telmap Ltd. Placement of map labels
US20070089051A1 (en) * 2000-06-29 2007-04-19 Microsoft Corporation Ink Thickness Rendering for Electronic Annotations
CN101263450A (zh) * 2005-09-15 2008-09-10 微软公司 字体字符的放大

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060005849A1 (en) 2004-07-12 2006-01-12 Thomas-Dupree Angela E Securing clip for track-mounted hairpieces
JP2006065524A (ja) 2004-08-26 2006-03-09 Hitachi Ltd 文書処理装置および方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0965925A2 (en) * 1998-06-17 1999-12-22 Xerox Corporation Overlay presentation of textual and graphical annotations
US20070089051A1 (en) * 2000-06-29 2007-04-19 Microsoft Corporation Ink Thickness Rendering for Electronic Annotations
US20060058949A1 (en) * 2004-09-10 2006-03-16 Telmap Ltd. Placement of map labels
CN101263450A (zh) * 2005-09-15 2008-09-10 微软公司 字体字符的放大

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
CARLSON SOFTWARE INC: "Carlson Survey 2008 Standalone-User’s Manual", 《URL:FILES.CARLSONSW.COM/MIRROR/MANUALS/CARLSON_SURVEY_2008_STANDALONE.PDF》 *

Also Published As

Publication number Publication date
CA2906324C (en) 2018-07-10
EP2951724A4 (en) 2016-10-12
MX2015013966A (es) 2016-06-02
WO2014178816A1 (en) 2014-11-06
US20160034439A1 (en) 2016-02-04
US10042833B2 (en) 2018-08-07
BR112015024112A2 (pt) 2017-07-18
RU2015139929A (ru) 2017-06-01
CA2906324A1 (en) 2014-11-06
SG11201506562WA (en) 2015-09-29
EP2951724A1 (en) 2015-12-09
AU2013388122A1 (en) 2015-08-27
AU2013388122B2 (en) 2017-04-13

Similar Documents

Publication Publication Date Title
EP3262497B1 (en) Contextual zoom
US20170357717A1 (en) Arrangement of Documents In A Document Feed
US6804420B2 (en) Information retrieving system and method
US5129052A (en) Dynamic selection of recursively nested logical element data formats
CN102929473A (zh) 文档数据输入建议
US20060110073A1 (en) Image processing apparatus, image processing method, program, and storage medium
US11256383B2 (en) Graphically representing content relationships on a surface of graphical object
US11238215B2 (en) Systems and methods for generating social assets from electronic publications
US20190141110A1 (en) Design Analysis for Framework Assessment
US20170132484A1 (en) Two Step Mathematical Expression Search
US20170286386A1 (en) Method and apparatus for extracting areas
US20160078015A1 (en) Representation of data records in graphic tables
US9049400B2 (en) Image processing apparatus, and image processing method and program
JPS6037945B2 (ja) 階層木構造のテキストを順序構造で表示する方法
CN105210053A (zh) 优化群集的结构注解的放置
CN1896997B (zh) 字符串检索装置
US20070162489A1 (en) Mapping source and target objects
JP4501459B2 (ja) クロス表作成のためのプログラム及び方法及び装置
JP4972271B2 (ja) 検索結果提示装置
JP4646300B2 (ja) 繰り返し行決定装置、繰り返し行決定方法、プログラム及び記録媒体
JP5315890B2 (ja) 評価システムおよび評価方法
CN115048030B (zh) 一种文字合并方法、装置、电子设备和存储介质
JP2019153230A (ja) 情報処理装置及び情報処理プログラム
WO2017009900A1 (ja) 文書処理システム及び文書処理方法
JP2011070529A (ja) 文書処理装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20151230

WD01 Invention patent application deemed withdrawn after publication