字符串配置装置制造方法

文档序号:6484574阅读:146来源:国知局
字符串配置装置制造方法
【专利摘要】本发明的字符串配置装置具备:字符串配置数据获取部(2),获取用于沿着道路配置字符串的字符串配置数据;道路节点列间除部(3),对构成由字符串配置数据获取部(2)获取的字符串配置数据中包含的道路节点列的节点的一部分进行间除;控制点列制作部(4),根据由道路节点列间除部(3)间除之后的道路节点列制作控制点列;曲线近似部(5),制作用直线对由通过控制点列制作部(4)制作的控制点列形成的曲线进行了近似的节点列;曲线近似节点列存储部(6),将由曲线近似部(5)制作出的节点列保存为曲线近似节点列;以及字符串配置处理部(13a),根据曲线近似节点列存储部(6)中保存的曲线近似节点列进行字符串的配置处理。
【专利说明】字符串配置装置
【技术领域】
[0001 ] 本发明涉及在地图上配置道路名称等字符串的字符串配置装置。
【背景技术】
[0002]以往,已知搭载了字符串配置功能的车辆导航系统,其中,所述字符串配置功能是将道路名称等字符串从开始字符串的配置的节点(以下称为“配置开始节点”)起沿着道路线(以下称为“道路节点列”)配置字符串的功能(例如,参照专利文献I?专利文献3)。如果使用该字符串配置功能,则与道路平行地配置字符,所以在配置横跨2个线路(link)的字符串的情况下,道路线路的角度变化(以下称为“道路角度变化”)和字符的配置角度的变化(以下称为“字符角度变化”)变得相等。
[0003]专利文献1:日本特开2008-76593号公报
[0004]专利文献2:日本特开2000-29450号公报
[0005]专利文献3:日本特开平6-259525号公报

【发明内容】

[0006]关于使用上述以往的字符串配置装置中的字符串配置功能来显示的字符串,由于道路角度变化和字符角度变化相等,所以存在如下问题:随着道路角度变化变大,字符角度变化也变大,字符串的可读性降低。
[0007]本发明是为了解决该问题而完成的,其课题在于提供一种提高了字符串的可读性的字符串配置装置。
[0008]本发明涉及的字符串配置装置具备:字符串配置数据获取部,获取用于沿着道路配置字符串的字符串配置数据;道路节点列间除部,对构成由字符串配置数据获取部获取的字符串配置数据中包含的道路节点列的节点的一部分进行间除;控制点列制作部,根据由道路节点列间除部间除之后的道路节点列,制作控制点列;曲线近似部,制作用直线对由通过控制点列制作部制作出的控制点列形成的曲线进行了近似的节点列;曲线近似节点列存储部,将由曲线近似部制作出的节点列保存为曲线近似节点列;以及字符串配置处理部,根据曲线近似节点列存储部中保存的曲线近似节点列,进行字符串的配置处理。
[0009]根据本发明的字符串配置装置,通过在根据道路线路制作出的曲线上配置字符串,能够减小字符角度变化,所以能够提高字符串的可读性。
【专利附图】

【附图说明】
[0010]图1是示出本发明的实施方式I的字符串配置装置的结构的框图。
[0011]图2是示出本发明的实施方式I的字符串配置装置的曲线近似部的详细的结构的框图。
[0012]图3是示出本发明的实施方式I的字符串配置装置的字符串配置计算部的详细的结构的框图。[0013]图4是示出本发明的实施方式I的字符串配置装置的字符配置部的详细的结构的框图。
[0014]图5是示出本发明的实施方式I的字符串配置装置的动作的流程图。
[0015]图6是示出在本发明的实施方式I的字符串配置装置中作为处理对象的道路节点列中的节点与线路的关系的例子的图。
[0016]图7是示出本发明的实施方式I的字符串配置装置的道路节点列间除部中进行的道路节点列的间除处理的流程图。
[0017]图8是示出在本发明的实施方式I的字符串配置装置中进行的间除处理后的道路节点列中的节点与线路的关系的例子的图。
[0018]图9是示出在本发明的实施方式I的字符串配置装置中的间除处理后作为处理对象的道路节点列中的节点与线路的关系的例子的图。
[0019]图10是示出本发明的实施方式I的字符串配置装置的控制点列制作部中进行的控制点列的制作处理的流程图。
[0020]图11是示出本发明的实施方式I的字符串配置装置的控制点列制作部中进行的控制点列的制作处理中求出的控制点列的例子的图。
[0021]图12是示出本发明的实施方式I的字符串配置装置的曲线近似部中进行的曲线近似节点列的制作处理的流程图。
[0022]图13是用于说明本发明的实施方式I的字符串配置装置中进行的曲线近似节点列的制作处理的说明图。
[0023]图14是详细地示出本发明的实施方式I的字符串配置装置中进行的曲线近似节点列的制作处理的一部分的流程图。
[0024]图15是示出由本发明的实施方式I的字符串配置装置在曲线近似后获取的曲线近似节点列与道路节点列的关系的图。
[0025]图16是示出本发明的实施方式I的字符串配置装置的字符串配置计算部中进行的字符串配置处理的流程图。
[0026]图17是示出本发明的实施方式I的字符串配置装置的字符配置部中进行的字符配置处理的详细内容的流程图。
[0027]图18是用于说明本发明的实施方式I的字符串配置装置中进行的字符的配置处理的图。
[0028]图19是用于说明本发明的实施方式I的字符串配置装置中进行的字符的配置处理的图。
[0029]图20是用于说明通过本发明的实施方式I的字符串配置装置中进行的字符的配置处理而配置的字符串的图。
[0030]图21是用于说明通过本发明的实施方式I的字符串配置装置中进行的字符的配置处理而配置的字符串的图。
[0031](符号说明)
[0032]1:字符串配置数据存储部;2:字符串配置数据获取部;3:道路节点列间除部;4:控制点列制作部;5:曲线近似部;6:曲线近似节点列存储部;7:曲线近似节点登记部;8:直线判定部;9:曲线上中间点制作部;10:如半曲线近似部;11:后半曲线近似部;12:单数直线近似部;13a:字符串配置处理部;13:曲线近似节点列获取部;14:字符串配置计算部;15:字符串配置登记部;16:输出字符串配置存储部;17:线路角度计算部;18:字符配置部;19:字符线路外判定部;20:重叠判定部;21:参数更新部;22:字符数判定部;23:初始字符判定部;24:字符配置位置决定部;25:字符左下坐标计算部;26:下一字符配置距尚更新部。
【具体实施方式】
[0033]以下,参照附图,详细说明本发明的实施方式。
[0034]实施方式1.[0035]图1是示出本发明的实施方式I的字符串配置装置的结构的框图。该字符串配置装置具备字符串配置数据存储部1、字符串配置数据获取部2、道路节点列间除部3、控制点列制作部4、曲线近似部5、曲线近似节点列存储部6以及字符串配置处理部13a,进而,字符串配置处理部13a具备曲线近似节点列获取部13、字符串配置计算部14、字符串配置登记部15以及输出字符串配置存储部16。
[0036]字符串配置数据存储部I存储字符串配置数据。字符串配置数据包括表示构成字符串的多个字符、各字符的纵宽以及横宽、字符串所沿着的道路节点列以及字符串的配置开始节点的数据。字符串配置数据存储部I中存储的字符串配置数据通过字符串配置数据获取部2读出。
[0037]字符串配置数据获取部2从字符串配置数据存储部I读出并获取字符串配置数据。由该字符串配置数据获取部2获取的字符串配置数据被送到道路节点列间除部3。
[0038]道路节点列间除部3对构成从字符串配置数据获取部2送来的字符串配置数据中包含的道路节点列的节点的一部分进行间除(thinning)。由该道路节点列间除部3对节点的一部分进行了间除之后的道路节点列被送到控制点列制作部4。通过该道路节点列间除部3中的间除,能够使字符串的轨迹平滑。
[0039]控制点列制作部4根据从道路节点列间除部3送来的、字符串所沿着的道路节点列,制作用于生成曲线的控制点列。由该控制点列制作部4制作的控制点列被送到曲线近似部5。
[0040]曲线近似部5根据从控制点列制作部4送来的控制点列来制作曲线,对该制作出的曲线进行直线近似而生成节点列。由该曲线近似部5生成的节点列作为曲线近似节点列被送到曲线近似节点列存储部6。通过用直线来近似在该曲线近似部5中根据道路线路制作出的曲线,从而能够使字符配置高速化。关于该曲线近似部5的详细内容,在后面描述。
[0041]曲线近似节点列存储部6保存从曲线近似部5送来的曲线近似节点列。由曲线近似节点列获取部13读出该曲线近似节点列存储部6中保存的曲线近似节点列。曲线近似节点列获取部13从曲线近似节点列存储部6读出并获取曲线近似节点列。由该曲线近似节点列获取部13获取的曲线近似节点列被送到字符串配置计算部14。
[0042]字符串配置计算部14根据从曲线近似节点列获取部13送来的曲线近似节点列,计算字符串的配置位置。由该字符串配置计算部14计算出的字符串的配置位置被送到字符串配置登记部15。关于该字符串配置计算部14的详细内容,在后面描述。
[0043]字符串配置登记部15在从字符串配置计算部14送来的判定结果表示达到了既定的字符数的情况下,将从该字符串配置计算部14送来的字符串的配置位置登记到输出字符串配置存储部16。输出字符串配置存储部16存储由字符串配置登记部15登记的字符串的配置位置。
[0044]接下来,说明上述曲线近似部5的详细内容。图2是示出曲线近似部5的详细的结构的框图。曲线近似部5具备曲线近似节点登记部7、直线判定部8、曲线上中间点制作部9、前半曲线近似部10、后半曲线近似部11以及单数直线近似部12。
[0045]曲线近似节点登记部7将从后半曲线近似部11或者单数直线近似部12送来的曲线近似节点列登记到曲线近似节点列存储部6。直线判定部8判定根据从控制点列制作部4送来的控制点列制作出的曲线能否用直线近似、换言之判定是否接近直线。如果在该直线判定部8中判断为不接近直线,则顺序(sequence)转移到曲线上中间点制作部9中的处理,如果判断为接近直线,则转移到单数直线近似部12中的处理。
[0046]曲线上中间点制作部9制作根据从控制点列制作部4送来的控制点列制作出的曲线上的中间点。由该曲线上中间点制作部9制作出的中间点被送到前半曲线近似部10以及后半曲线近似部U。前半曲线近似部10用直线近似根据从控制点列制作部4送来的控制点列制作出的曲线中的、在从曲线上中间点制作部9送来的中间点之前的曲线。通过该前半曲线近似部10中的直线近似来制作出的节点列被送到后半曲线近似部11。
[0047]后半曲线近似部11用直线近似根据从控制点列制作部4送来的控制点列制作出的曲线中的、在从曲线上中间点制作部9送来的中间点之后的曲线。通过该后半曲线近似部11中的直线近似来制作出的节点列与从前半曲线近似部10送来的节点列连起来作为曲线近似节点列被送到曲线近似节点登记部7。
[0048]单数直线近似部12用I条直线近似根据从控制点列制作部4送来的控制点列制作出的曲线。在该单数直线近似部12中通过直线近似来制作出的节点列作为曲线近似节点列被送到曲线近似节点登记部7。
[0049]接下来,说明上述字符串配置计算部14的详细内容。图3是示出字符串配置计算部14的详细的结构的框图。字符串配置计算部14具备线路角度计算部17、字符配置部18、字符线路外判定部19、重叠判定部20、参数更新部21以及字符数判定部22。
[0050]线路角度计算部17根据从曲线近似节点列获取部13送来的曲线近似节点列,计算在各节点处线路形成的角度(以下称为“线路角度”)。由该线路角度计算部17计算出的线路角度被送到字符配置部18。
[0051]字符配置部18根据从线路角度计算部17送来的线路角度,配置字符。由该字符配置部18配置的字符被送到字符线路外判定部19。关于该字符配置部18的详细内容,在后面描述。字符线路外判定部19判定从字符配置部18送来的字符是否在线路外。该字符线路外判定部19中的判定结果被送到重叠判定部20。
[0052]重叠判定部20根据从字符线路外判定部19送来的判定结果,判定字符彼此是否重叠。该重叠判定部20中的判定结果被送到参数更新部21。参数更新部21依照从重叠判定部20送来的判定结果,更新字符串配置中使用的参数。由该参数更新部21更新后的参数被送到字符数判定部22。
[0053]字符数判定部22参照从参数更新部21送来的参数,判定是否达到了既定的字符数。该字符数判定部22中的判定结果被送到字符串配置登记部15。[0054]接下来,说明上述字符配置部18的详细内容。图4是示出字符配置部18的详细的结构的框图。字符配置部18具备初始字符判定部23、字符配置位置决定部24、字符左下坐标计算部25以及下一字符配置距离更新部26。
[0055]初始字符判定部23判定根据从线路角度计算部17送来的线路角度配置的字符是否为字符串中的第I个字符。该初始字符判定部23中的判定结果被送到字符配置位置决定部24以及字符左下坐标计算部25。
[0056]字符配置位置决定部24根据从初始字符判定部23送来的判定结果、或者根据由字符左下坐标计算部25计算出的字符的左下坐标,决定字符的配置位置。由该字符配置位置决定部24决定的配置位置被送到字符配置位置决定部24或者字符左下坐标计算部25。
[0057]字符左下坐标计算部25根据从初始字符判定部23送来的判定结果,计算字符的左下坐标。由字符左下坐标计算部25计算出的字符的左下坐标被送到字符配置位置决定部24或者下一字符配置距离更新部26。下一字符配置距离更新部26根据由字符左下坐标计算部25计算出的字符的左下坐标,决定直至下一字符为止的距离,更新字符间隔。由该下一字符配置距离更新部26更新后的字符间隔被送到字符线路外判定部19。
[0058]接下来,说明如上那样构成的实施方式I的字符串配置装置的动作。图5是示出字符串配置装置的动作的流程图。
[0059]在实施方式I中,作为一个例子,设为如下而进行说明:字符串配置数据包括字符串“String”中的各字符的横宽、纵宽以及字符串“String”所沿着的道路节点列,字符串“String”中的各字符的纵宽是10、横宽是5,字符串“String”所沿着的道路节点列是P (I)=(0,10), P (2)= (5,10), P (3)= (10,10), P (4)= (50,10)以及 P (5)= (10,50),开始字符串的配置的节点是P (D= (0,10)o
[0060]另外,设为表示对曲线进行直线近似时的线路的条数的SEPARATE_NUM是2,作为是用I条线路对曲线进行近似还是用多条线路对曲线进行近似的判断中使用的距离的边界的SEPARATE_THRESHOLD是15,作为是用I条线路对曲线进行近似还是用多条线路对曲线进行近似的判断中使用的角度变化的边界的STRAIGHT_THRESHOLD是10,作为判断可否间除的距离的边界的CULLING_THRESHOLD是10,作为range的增量的STEP_SIZE是1,详细内容在后面描述。图6示出道路节点列中的节点与线路的关系的例子。
[0061]当字符串配置装置的动作开始时,首先,获取字符串数据(步骤ST11)。S卩,字符串配置数据获取部2从字符串配置数据存储部I读出字符串配置数据,获取字符串所沿着的道路节点列和字符串的配置开始节点。在该例子中,获取字符串“String”所沿着的道路节点列和开始字符串“String”的配置的节点。
[0062]接下来,进行道路节点列的间除(步骤ST12)。即,道路节点列间除部3为了制作平滑的曲线,对构成由字符串配置数据获取部2获取的字符串配置数据中包含的道路节点列的节点的一部分进行间除。此处,参照图7所示的流程图,说明在道路节点列间除部3中进行的道路节点列的间除处理的详细内容。
[0063]在道路节点列的间除处理中,道路节点列中包含的节点被依次扫描,满足以下的3个条件的全部条件的节点从道路节点列被间除。
[0064](I)节点不是道路节点列的配置开始节点或者配置结束节点
[0065](2)未对前面的节点进行间除[0066](3)与前面的节点的距离是⑶LLING_THRESHOLD以下
[0067]当道路节点列的间除处理开始时,首先,变量ir被初始化为I (步骤ST121)。接下来,如果变量ir是道路节点数以下,则循环开始(步骤ST122)。当循环开始时,首先,调查节点P (ir)是否为配置开始节点或者配置结束节点(步骤ST123)。即,道路节点列间除部3调查从字符串配置数据获取部2送来的字符串配置数据中包含的道路节点列中的节点P(ir)是否为配置开始节点或者配置结束节点。如果在该步骤ST123中判断为节点P(ir)是配置开始节点或者配置结束节点,则不满足上述3个条件中的(I ),所以不进行节点P (ir )的间除,顺序进入步骤ST127。
[0068]如果在上述步骤ST123中判断为节点P (ir)不是配置开始节点或者配置结束节点,则接下来,调查节点P (ir — I)是否被间除(步骤ST124)。即,道路节点列间除部3调查是否对前一个节点P (ir — I)进行了间除。如果在该步骤ST124中判断为节点P (ir —I)被间除,则不满足上述3个条件中的(2),所以不进行节点P (ir)的间除,顺序进入步骤ST127。
[0069]如果在上述步骤ST124中判断为未对节点P (ir — I)进行间除,则接下来,调查节点P (ir — I)与节点P (ir)的距离是否为CULLING_THRESHOLD以下(步骤ST125)。即,道路节点列间除部3调查前面的节点P (ir — I)与当前的节点P (ir)之间的距离是否为⑶LLING_THRESHOLD (在该例子中为10)以下。如果在该步骤ST125中判断为节点P (ir —O与节点P (ir)的距离并非⑶LLING_THRESHOLD以下,则不满足上述3个条件中的(3),所以不进行节点P (ir)的间除,顺序进入步骤ST127。
[0070]另一方面,如果在步骤ST125中判断为节点P (ir -1)与节点P (ir)的距离是⑶LLING_THRESHOLD以下,则理解为满足了上述3个条件的全部的意思,接下来,进行节点P(ir)的删除(步骤ST126)。即,道路节点列间除部3对从字符串配置数据获取部2送来的字符串配置数据中包含的道路节点列中的节点(ir)进行间除。之后,顺序进入步骤ST127。在步骤ST127中,变量ir被递增,以后反复进行步骤ST122与步骤ST127之间的处理,直至变量ir变得比道路节点数大为止。
[0071]通过以上的反复处理,节点P (I)?P (5)被如下那样处理。首先,研究节点P(I)可否间除。此处,节点P (I)是道路节点列的配置开始节点,所以不被间除。接下来,研究节点P (2)可否间除。此处,节点P (2)不是道路节点列的配置开始节点或者配置结束节点,前面的节点P (I)未被间除,并且节点P (I)与节点P (2)之间的距离是5,是作为⑶LLING_THRESHOLD的10以下。因此,满足上述3个条件的全部,所以节点P (2)被间除。
[0072]接下来,研究节点P (3)可否间除。此处,节点P (3)不是道路线路的配置开始节点或者配置结束节点,但前面的节点P (2)被间除,所以节点P (3)不被间除。以下同样地,对节点P (4)以后也进行处理。
[0073]以上处理的结果,如图8所示,制作出节点P (2)被间除了的道路节点列、即由节点P (1)、P (3)、P (4)以及P (5)构成的道路节点列。此处,如图9所示,将间除后的道路节点列 P (1)、P (3)、P (4)以及 P (5)分别设为 P’(1)、P’(2)、Ρ’(3)以及 P’(4)来说明以后的处理。
[0074]当以上的道路节点列的间除处理结束时,接下来,如图5的流程图所示,制作控制点列(步骤ST13)。即,控制点列制作部4根据间除后的道路节点列,制作控制点列。此处,参照图10所示的流程图,说明控制点列的制作处理的详细内容。
[0075]在控制点列的制作处理中,首先,设定控制点列B (ic){ic=l,...,间除后的道路节点数一 2}。详细而言,首先,变量ic被初始化为I (步骤ST131)。接下来,如果变量ic是“间除后的道路节点数一 2”以下,则开始循环(步骤ST132)。当循环开始时,依照下述(I)式计算控制点B (ic)(步骤ST133)。之后,顺序进入步骤ST134。
[0076]B(ic)=P’(ic+1)…(I)
[0077]此处,ic=l,…,间除后的道路节点数一 2。
[0078]在步骤ST134中,变量ic被递增,以后反复进行步骤ST132与步骤ST134之间的处理,即反复进行步骤ST133的处理,直至变量ic变得比“间除后的道路节点数一 2”大为止。
[0079]在以上的反复处理中,得到间除后的道路节点数=4,且控制点B (1)=P’ (2)=(10,10)以及控制点 B (2)=P,(3)= (50,10)。
[0080]接下来,设定控制点列A(ic){ic=l,...,间除后的道路节点数一I}。详细而言,首先,变量ic被初始化为1(步骤ST135)。接下来,如果变量ic是“间除后的道路节点数一 I”以下,则开始循环(步骤ST136)。当循环开始时,首先,调查变量ic是否为1(步骤ST137)。如果在该步骤ST137中判断为变量ic是1,则接下来,设定控制点A (ic)=P’ (ic)(步骤ST138)。之后,顺序进入步骤ST142。
[0081 ] 如果在上述步骤ST137中判断为变量ic不是I,则接下来,调查变量ic是否为“道路节点数一 I”(步骤ST139)。如果在该步骤ST139中判断为变量ic是“道路节点数一 1”,则设定为控制点A (ic — 1)=P’ (ic)(步骤ST140)。之后,顺序进入步骤ST142。
[0082]另一方面,如果在步骤ST139中判断为变量ic不是“道路节点数一 1”,则设定为控制点A (ic)= (B (ic - 1)+B (ic))/2 (步骤ST141)。之后,顺序进入步骤ST142。在步骤ST142中,变量ic被递增,以后反复进行步骤ST136与步骤ST142之间的处理,直至变量ic变得比“间除后的道路节点数一 I”大为止。
[0083]通过以上的反复处理,控制点A(ic)如以下所示,设定值根据变量ic的值而变化。首先,在ic=l的情况下,对控制点A (ic)设定节点P’(1),在变量ic是“道路节点数一 I”的情况下,对控制点A (ic — I)设定节点P’(ic)。在变量ic既不是I也不是“间除后的道路节点数一 I”的情况下,对控制点A (ic)设定控制点B (ic)与B (ic -1)的中点。
[0084]以上处理的结果,首先,设定控制点A (I)。关于控制点A (1),由于是ic=l,所以设定节点P’(I)。接下来,设定控制点A (2)。关于控制点A (2),由于是ic古1、3,所以成为控制点B (I)与B (2)的中点(30,10)。之后,设定控制点A (3)。关于控制点A (3),由于是ic=3,所以设定节点P’(4)。这样,如图11所示,求出控制点列A (I)、A (2)以及A (3)、和控制点列B (I)以及B (2)。
[0085]当以上的控制点列的制作处理结束时,接下来,如图5的流程图所示,制作对曲线进行了近似的直线(步骤ST14)。即,曲线近似部5根据控制点列,制作对曲线进行了近似的直线。此处,参照图12所示的流程图,说明在曲线近似部5中进行的对曲线进行了近似的直线(以下,曲线近似节点列)的制作处理的详细内容。
[0086]在曲线近似节点列的制作处理中,首先,变量ia被初始化为I (步骤ST151)。接下来,进行节点的登记(步骤ST152)。即,曲线近似节点登记部7将控制点A (I)保存到曲线近似节点列存储部6。在该情况下,A (I) = (0,10)被保存到曲线近似节点列存储部6。
[0087]接下来,如果变量ia是“间除后的道路节点数一2”以下,则开始循环(步骤ST153)。当循环开始时,调查是否为线路(A (ia)、B (ia))与线路(B (ia)、A (ia+1))的角度变化<STRAIGHT_THRESHOLD (步骤ST154)。即,直线判定部8判定通过控制点A (ia)、B(ia)以及A (ia+Ι)制作的2次贝塞尔曲线(以后简称为“贝塞尔曲线”)能否用直线近似。具体而言,首先,判定线路(A (ia),B (ia))与线路(B (ia),A (ia+1))的角度变化是否小于STRAIGHT_THRESHOLD。另外,变量ia表示控制点列的索引,线路(A (ia),B (ia))与线路(B (ia), A (ia+Ι))的角度变化Θ如图13所示,是线路(A (ia), B (ia))的朝向与线路(B (ia), A (ia+Ι))的朝向的差分的绝对值。此处,线路(A (ia), B (ia))的朝向是将X轴设为0°、将y轴设为90°时的偏角。
[0088]在该例子中,在变量ic是I的情况下,如图11所示,线路(A (1),B (I))的朝向成为0°,线路(B (I),A (2))的朝向也成为0°。因此,线路(A (I),B (I))与线路(B (I),A (2))的角度变化成为0°,在步骤ST154中判定为“是”。
[0089]如果在上述步骤ST154中,判断为是线路(A (ia), B (ia))与线路(B (ia), A(ia+Ι))的角度变化<STRAIGHT_THRESHOLD,则用I条线路近似曲线(步骤ST155)。S卩,单数直线近似部12用线路(A (ia),A (ia+1))近似通过控制点A (ia)、B (ia)以及A (ia+1)制作的贝塞尔曲线。在该例子中,用线路(A (I), A (2))近似通过控制点A (I)、B (I)以及A (2)制作的贝塞尔曲线。
[0090]接下来,进行节点的登记(步骤ST156)。S卩,曲线近似节点登记部7将从单数直线近似部12送来的线路中的、除了已经登记的A (I)以外的节点作为曲线近似节点保存到曲线近似节点列存储部6。在该例子中,保存控制点A (2)。之后,顺序进入步骤ST166。
[0091]如果在上述步骤ST154中判断为并非是线路(A (ia)、B (ia))与线路(B (ia)、A(ia+1))的角度变化<STRAIGHT_THRESHOLD,则顺序进入步骤ST157。在该例子中,如果进入接下来的循环而变量ic成为2, 则直线判定部8调查线路(A (2),B (2))与线路(B (2), A(3))的角度变化是否小于STRAIGHT_THRESHOLD,由于线路(A (2),B (2))的朝向是0°,线路(B CZ), k (3))的朝向是135°,所以判定为线路(A (2),B (2))与线路(B CZ), k (3))的角度变化是STRAIGHT_THRESHOLD以上。因此,在步骤ST154中判定为“否”,顺序进入步骤ST157,进行用多个直线近似通过控制点A (2)、B (2)以及A (3)制作的贝塞尔曲线的处理。
[0092]具体而言,在步骤ST157中,计算曲线上的中间点即点MP(ia)。S卩,曲线上中间点制作部9依照下述(2)式计算贝塞尔曲线上的点MP (ia)。在该例子中,如果在(2)式中代AA (2)= (30,10),B (2)= (50,10),A (3)= (10,50),则曲线上的点 MP (2)= (35,20)。
[0093]MP (ia) = (1-0.5) 2A (ia) +2 (1-0.5).0.5B (ia) +0.52A (ia+1)…(2)
[0094]接下来,调查是否为曲线上的点MP (ia)与控制点A (ia)之间的距离<SEPARATE_THRESHOLD(步骤ST158)。即,前半曲线近似部10调查通过下述(3)式求出的控制点A(ia)与曲线上的点MP (ia)之间的距离Distl是否小于SEPARATE_THRESHOLD。
[0095]如果在该步骤ST158中判断为是曲线上的点MP (ia)与控制点A (ia)之间的距离<SEPARATE_THRESHOLD,则用I条线路近似曲线(步骤ST159)。即,单数直线近似部12用I条线路(A (ia),MP (ia))近似控制点A (ia)与曲线上的点MP (ia)之间的贝塞尔曲线。[0096]接下来,进行节点的登记(步骤ST160)。S卩,曲线近似节点登记部7将从单数直线近似部12送来的、用I条线路近似的节点保存到曲线近似节点列存储部6。之后,顺序进入步骤ST162。
[0097]另一方面,如果在步骤ST158中判断为并非是曲线上的点MP (ia)与控制点A (ia)之间的距离<SEPARATE_THRESHOLD,即判断为距离Distl是SEPARATE_THRESHOLD以上,则用通过SEPARATE_NUM表示的条数的线路来近似控制点A (ia)与曲线上的点MP (ia)之间的贝塞尔曲线(步骤ST161)。
[0098]参照图14所示的流程图,说明在该步骤ST161中进行的处理的详细内容。在该处理中,首先,变量im被初始化为I (步骤ST171)。接下来,如果变量im是SEPARATE_NUM以下,则循环开始(步骤ST172)。当循环开始时,首先,计算曲线上的节点(步骤ST173)。SP,前半曲线近似部10依照下述(4)式,计算曲线上的点MP (ia)与控制点A (ia)之间的曲线上的节点。
[0099]Distl = I IA (ia)-MP (ia) | 1...(3)
[0100]BP (ia, im) = (l_t (im)) 2A (ia)+2 (l_t (im)) t (im) B (ia)+t (im) 2A (ia+Ι)…(4)
[0101]t(im) = 0.5 X im/SERARATE_NUM…(5)
[0102]此处,(4)式中的t (im)是(5)式所示的值,BP (ia,im)是在控制点A (ia)与曲线上的点MP (ia)之间的贝塞尔曲线上制作的第im个节点。
[0103]接下来,进行节点的登记(步骤ST174)。S卩,曲线近似节点登记部7将由前半曲线近似部10计算出的节点中的、除了已经登记的节点以外的曲线上的节点登记到曲线近似节点列存储部6。接下 来,变量im被递增,以后反复进行步骤ST172与步骤ST175之间的处理,直至变量im变得比SEPARATE_NUM大为止。如果在该反复处理中变量im变得比SEPARATE_NUM大,则顺序进入图12所示的步骤ST162。
[0104]在该情况下,Distl是 11.18,是 SEPARATE_THRESHOLD 以下。因此,用线路(A(2),MP (2))近似控制点A (2)与曲线上的点MP (2)之间的曲线。在该情况下,在节点的登记中,保存曲线上的点MP (2)。
[0105]在步骤ST162中,调查是否为曲线上的点MP (ia)与控制点A (ia+Ι)之间的距离<SEPARATE_THRESHOLD。即,后半曲线近似部11调查依照下述(6)式计算出的曲线上的点MP (ia)与控制点 A (ia+Ι)的距离 Dist2 是否小于 SEPARATE_THRESHOLD。
[0106]如果在该步骤ST162中判断为是曲线上的点MP (ia)与控制点A (ia+Ι)之间的距离<SEPARATE_THRESHOLD,则用I条线路近似曲线(步骤ST163)。即,单数直线近似部12用I条线路(MP (ia),A (ia))近似曲线上的点MP (ia)与控制点A (ia+Ι)之间的贝塞尔曲线。
[0107]接下来,进行节点的登记(步骤ST164)。S卩,曲线近似节点登记部7将从单数直线近似部12送来的用I条线路近似的节点保存到曲线近似节点列存储部6。之后,顺序进入步骤ST166。
[0108]另一方面,如果在步骤ST162中判断为并非是曲线上的点MP (ia)与控制点A(ia+Ι)之间的距离 <SEPARATE_THRESHOLD、即判断为距离 Dist2 是 SEPARATE_THRESHOLD 以上,则用通过SEPARATE_NUM表示的条数的线路,近似曲线上的点MP (ia)与控制点A (ia+1)之间的贝塞尔曲线(步骤ST165)。之后,顺序进入步骤ST166。[0109]参照图14所示的流程图,说明上述步骤ST165中进行的处理的详细内容。在该处理中,首先,变量im被初始化为I (步骤ST171)。接下来,如果变量im是SEPARATE_NUM以下,则循环开始(步骤ST172)。当循环开始时,首先,计算曲线上的节点(步骤ST173)。SP,前半曲线近似部10依照上述(4)式,计算曲线上的点MP (ia)与控制点A (ia)之间的曲线上的节点。
[0110]Dist2 = I IMP(ia)-A(ia+1) | 丨…(6)
[0111]t(iM) =0.5 X im/SEPARATE_NUM+0.5...(7)
[0112]此处,(4)式中的t (im)是(7)式所示的值,此时的BP (ia,im)是在曲线上的点MP (ia)与控制点A (ia+Ι)之间的贝塞尔曲线上制作的第im个节点。
[0113]接下来,进 行节点的登记(步骤ST174)。即,曲线近似节点登记部7将由后半曲线近似部11计算出的节点中的、除了已经登记的节点以外的曲线上的节点登记到曲线近似节点列存储部6。接下来,变量im被递增,以后反复进行步骤ST172与步骤ST175之间的处理,直至变量im变得比SEPARATE_NUM大为止。之后,顺序进入步骤ST166。
[0114]在该情况下,Dist2是 26.9,是 SEPARATE_THRESHOLD 以上。因此,用 SEPARATE_NUM个线路,近似曲线上的点MP (2)与控制点A (ia+Ι)之间的曲线。具体而言,首先,计算 im=l 的节点。根据(7)式,t (1)=0.75, BP (2,1)= (26.25,32.5)。之后,BP (2,I)被保存到曲线近似节点列存储部6。接下来,计算BP (2,2)。同样地,在由用(7)式求出的t(2) =1计算出了 BP (2,2)= (10,50)之后,BP (2,2)被保存到曲线近似节点列存储部6。
[0115]在步骤ST166中,变量ia被递增,以后反复进行步骤ST153与步骤ST166之间的处理,直至变量ia变得比“间除后的道路节点数一 2”大为止。如此方式,对根据控制点列制作出的曲线进行了直线近似的曲线近似节点被依次保存到曲线近似节点列存储部6。
[0116]另外,在前半曲线近似部10和后半曲线近似部11中,除了 t (im)的计算方法以外是相同的处理,所以前半曲线近似部10的在MP (ia)与控制点A (ia)之间的距离是SEPARATE_THRESHOLD以上的情况下、和后半曲线近似部11的在MP (ia)与控制点A (ia+1)之间的距离是SEPARATE_THRESHOLD以上的情况下的处理相同。
[0117]当以上的对曲线进行了近似的直线的制作处理结束时,接下来,如图5的流程图所示,获取字符串数据(步骤ST15)。即,字符串配置数据获取部2从字符串配置数据存储部I读出字符串配置数据,获取构成I个字符串的多个字符、和各字符的纵宽以及横宽。在该情况下,获取字符串“String”的字符“S”、“t”、“r”、“i”、“n”、“g”、和“String”中的各字符的纵宽以及横宽。
[0118]接下来,获取曲线近似节点列(步骤ST16)。即,曲线近似节点列获取部13从曲线近似节点列存储部6获取曲线近似节点列。在该情况下,获取在上述处理中登记的节点P”
(I)= (0,10)、P,,(2)= (30,10)、P,,(3) =MP (2)= (35,20)、P,,(4) =BP (2,1)= (26.25,32.5)以及P” (5) =BP (2,2)= (10,50)。图15示出所获取的曲线近似节点列与道路节点列的关系。
[0119]接下来,进行字符串的配置(步骤ST17)。即,字符串配置计算部14配置字符串。此处,参照图16所示的流程图,说明字符串配置处理的详细内容。
[0120]在字符串配置处理中,首先,参数被初始化为ip=l、is=l以及range=0 (步骤ST181 )。接下来,如果参数ip是“曲线近似节点列的数一 I ”以下,则循环开始(步骤ST182)。当循环开始时,接下来,在该循环中,进而开始无限循环(步骤ST183)。当无限循环开始时,接下来,计算线路的朝向Θ’(步骤ST184)。即,线路角度计算部17计算线路(P”(ip),P”(ip+1))的朝向Θ’。在该例子中,线路(P”(1),P”(2))的朝向θ,=0。。
[0121]接下来,进行第is个字符(以下称为“字符is”)的配置(步骤ST185)。S卩,字符配置部18根据线路的朝向Θ ’以及字符间隔range,决定字符is的配置。此处,参照图17所示的流程图,说明决定字符is的配置的字符配置处理的详细内容。
[0122]在字符配置处理中,首先,调查是否为is=l(步骤ST200)。即,初始字符判定部23判定表示所配置的字符的参数is是否为1、即是否为第I个字符。如果在该步骤ST200中判断为是is=l,则转移到配置字符is的处理。在该例子中,在初始状态下是is=l,所以转移到配置字符is的处理。
[0123]在配置字符is的处理中,字符配置位置决定部24对节点P”(I)配置字符is,视为字符线路内而结束字符配置处理。更详细而言,首先,字符is的左下坐标LD( is)被设定于节点P” (O (步骤ST201)。即,字符配置位置决定部24将字符is的左下坐标LD (is)设定到节点P”(I)。
[0124]接下来,对LD (is)配置字符is (步骤ST202)。即,字符配置位置决定部24对字符is的左下坐标LD(is)配置字符is。此处,字符配置是指如下处理:在将字符is的左下坐标LD (is)设定于节点P”(I)之后,对字符is的左上坐标LT (is)、右下坐标RD (is)以及右上坐标RT (is)设定用下述(8)式求出的值。另外,(8)式中的W (is)以及H (is)分别表示字符is的横宽以及纵宽。在该例子中,成为LD (I)= (0,10),LT (I)= (0,20),RD (I)= (5,10),RT (I)= (5,20)。
【权利要求】
1.一种字符串配置装置,具备: 字符串配置数据获取部,获取用于沿着道路配置字符串的字符串配置数据; 道路节点列间除部,对构成由所述字符串配置数据获取部获取的字符串配置数据中包含的道路节点列的节点的一部分进行间除; 控制点列制作部,根据由所述道路节点列间除部间除之后的道路节点列,制作控制点列; 曲线近似部,制作用直线对由通过所述控制点列制作部制作出的控制点列形成的曲线进行了近似的节点列; 曲线近似节点列存储部,将由所述曲线近似部制作出的节点列保存为曲线近似节点列;以及 字符串配置处理部,根据所述曲线近似节点列存储部中保存的曲线近似节点列,进行字符串的配置处理。
2.根据权利要求1所述的字符串配置装置,其特征在于, 曲线近似部具备: 直线判定部,判定能否用直线近似由通过控制点列制作部制作出的控制点列形成的曲线.曲线上中间点制作部,在所述直线判定部中判定为无法用直线近似的情况下,制作由通过所述控制点列制作部制作出的控制点列形成的曲线上的中间点; 前半曲线近似部,输出用直线对`由来自所述控制点列制作部的控制点列形成的曲线中的、在通过所述曲线上中间点制作部制作出的中间点之前的曲线进行近似而制作出的节点列; 后半曲线近似部,将用直线对由来自所述控制点列制作部的控制点列形成的曲线中的、在通过所述曲线上中间点制作部制作出的中间点之后的曲线进行近似而制作出的节点列连到通过所述前半曲线近似部对直线进行近似而制作出的节点列来输出; 单数直线近似部,在所述直线判定部中判定为能够用直线近似的情况下,输出用I条直线对由通过所述控制点列制作部制作出的控制点列形成的曲线进行近似而制作出的节点列;以及 曲线近似节点登记部,将来自所述后半曲线近似部的节点列、或者来自所述单数直线近似部的节点列作为曲线近似节点列而登记到曲线近似节点列存储部。
3.根据权利要求1所述的字符串配置装置,其特征在于, 字符串配置处理部具备: 曲线近似节点列获取部,从曲线近似节点列存储部获取字符串所沿着的节点列; 字符串配置计算部,根据通过所述曲线近似节点列获取部获取的曲线近似节点列,计算字符串的配置位置; 输出字符串配置存储部,保存字符串的配置位置;以及 字符串配置登记部,将通过所述字符串配置计算部计算出的字符串的配置位置登记到所述输出字符串配置存储部。
4.根据权利要求3所述的字符串配置装置,其特征在于, 字符串配置计算部具备:线路角度计算部,根据通过曲线近似节点列获取部获取的曲线近似节点列,计算在各节点中由线路形成的线路角度; 字符配置部,根据在所述线路角度计算部中计算出的线路角度,配置字符; 字符线路外判定部,判定通过所述字符配置部配置的字符是否处于线路外; 重叠判定部,在通过所述字符线路外判定部判定为不处于线路外的情况下,判定字符彼此是否重叠; 参数更新部,根据所述重叠判定部中的判定结果,更新参数;以及字符数判定部,根据通过所述参数更新部更新后的参数,判定是否达到既定的字符数,在判定为达到既定的字符数的情况下结束处理。
5.根据权利要求4所述的字符串配置装置,其特征在于, 字符配置部具备: 初始字符判定部,判定根据通过线路角度计算部计算出的线路角度配置的字符是否为字符串中的第I个字符; 字符左下坐标计算部,根据所述初始字符判定部中的判定结果,计算字符的左下坐标; 字符配置位置决定部,根据通过所述初始字符判定部得到的判定结果或者通过字符左下坐标计算部计算出的字符的左下坐标,决定字符的配置位置;以及 下一字符配置距离更新部,根据通过所述字符左下坐标计算部计算出的字符的左下坐标,决定直至下一字符为止的距离。
【文档编号】G06T11/60GK103430226SQ201180069255
【公开日】2013年12月4日 申请日期:2011年3月14日 优先权日:2011年3月14日
【发明者】宫本健 申请人:三菱电机株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1