基于三维引擎的富文本编辑方法、编辑器及电子设备技术

技术编号:21478021 阅读:31 留言:0更新日期:2019-06-29 04:54
本发明专利技术公开了一种基于三维引擎的富文本编辑器及编辑方法,用于解决现有三维引擎中富文本样式单一、固定且不能够实时编辑、动态排版的问题的技术问题。本发明专利技术首先编辑生成符合Rope数据结构的字符串,Rope数据结构中各叶子节点的字符子串携带有相应的格式,然后对Rope数据结构进行解析,依次读取Rope数据结构中各叶子节点的字符子串,并以相应的格式显示在三维引擎的指定显示区域;其中,显示字符子串时根据三维引擎显示区域的大小以及各字符子串的格式进行动态排版,排版包括换行、调整字符间距。本发明专利技术借助Rope数据结构实现了富文本的多样式灵活显示以及实时编辑、动态排版。

【技术实现步骤摘要】
基于三维引擎的富文本编辑方法、编辑器及电子设备
本专利技术涉及三维图形渲染领域的富文本编辑技术,也可用于二维图纸(如CAD制图)。
技术介绍
BIM(建筑信息模型)是近年来建筑信息化领域核心的理念之一,其数据的基础即为建筑的三维信息模型。相比于传统的二维设计、绘图,BIM技术全面利用三维图形技术,以建筑物(建筑构件、建筑整体)的三维图形为载体进一步挂接各种建筑信息参数,形成建筑信息模型,然后进行建筑物、甚至构件的全生命周期管理。可以说,三维图形是BIM技术的肌肉与皮肤,直观的三维图形表达与处理能有效帮助BIM关键应用的落地,实现其价值,譬如建筑模型的可视化、碰撞检测、5D虚拟施工等。很难想象这些应用能在非图形或者二维图形的世界中完成。文字显示是三维图形引擎中必不可少的渲染单元。富文本(含多种字体Style)编辑也是文字处理软件中的常见功能。但是基于三维引擎的富文本编辑工具目前还比较缺乏。而且现在常见的三维引擎中文本显示模块基本都是单行单样式或者多行单样式,不支持多行文本多样式动态编辑,显示样式如图1所示。此类文本显示技术存在样式单一、固定,不能够实时编辑、动态排版等缺陷。
技术实现思路
本专利技术的目的在于解决在现有三维引擎中富文本样式单一、固定且不能够实时编辑、动态排版的问题。为了达到上述目的,本专利技术提供了一种基于三维引擎的富文本编辑方法,包括以下步骤:1)编辑生成符合Rope数据结构的字符串,所述Rope数据结构中各叶子节点的字符子串携带有相应的格式;2)对所述Rope数据结构进行解析,依次读取所述Rope数据结构中各叶子节点的字符子串,并以相应的格式显示在三维引擎的指定显示区域;其中,根据三维引擎中指定显示区域的大小,以及各字符子串的格式,进行动态排版,所述排版包括换行、调整字符间距。进一步的,步骤1)中各字符子串携带的格式包括中英文、字体、字号、颜色、倾斜、粗细、下划线、删除线中的一种或多种的组合。进一步的,基于Rope数据结构,步骤1)中生成的所述字符串能够被实时动态编辑,所述编辑包括插入、删除、修改。进一步的,步骤2)中根据三维引擎中指定显示区域的宽度以及各字符子串的格式,确定每行所能显示的字符个数,据此进行换行或调整字符间距。进一步的,步骤2)中,如果行尾遇到标点符号,则标点符号紧跟行尾显示,本行字符间距微调。进一步的,步骤2)中,如果行尾遇到标点符号,则标点符号连同其之前的一个字符一起换行显示,且上一行字符间距微调。进一步的,步骤2)中所述排版还包括缩进、调整行间距、调整段落间距,根据各字符子串所携带的格式信息进行解析而实现。进一步的,步骤2)中如果所述指定显示区域字符排满之后仍有字符未显示,则将所有字符等比例缩小直至所有字符都能显示。进一步的,所述三维引擎为BIM建筑信息模型中的三维图形引擎。本专利技术还提供了一种基于三维引擎的富文本编辑器,包括以下模块:字符串编辑模块,用于编辑生成符合Rope数据结构的字符串,所述Rope数据结构中各叶子节点的字符子串携带有相应的格式;解析排版模块,用于对所述Rope数据结构进行解析,依次读取所述Rope数据结构中各叶子节点的字符子串,并以相应的格式显示在三维引擎的指定显示区域,并根据三维引擎中指定显示区域的大小,以及各字符子串的格式,进行动态排版,所述排版包括换行、调整字符间距。进一步的,字符串编辑模块中,各字符子串携带的格式包括中英文、字体、字号、颜色、倾斜、粗细、下划线、删除线中的一种或多种的组合。进一步的,基于所述Rope数据结构,所述字符串编辑模块能够实时动态编辑所生成的字符串,所述编辑包括插入、删除、修改。进一步的,解析排版模块根据三维引擎中指定显示区域的宽度以及各字符子串的格式,确定每行所能显示的字符个数,据此进行换行或调整字符间距。进一步的,如果行尾遇到标点符号,所述解析排版模块将标点符号紧跟行尾显示,本行字符间距微调。进一步的,如果行尾遇到标点符号,所述解析排版模块将标点符号连同其之前的一个字符一起换行显示,且上一行字符间距微调。进一步的,所述解析排版模块执行的排版还包括缩进、调整行间距、调整段落间距,根据各字符子串所携带的格式信息进行解析而实现。进一步的,如果所述指定显示区域字符排满之后仍有字符未显示,所述解析排版模块将所有字符等比例缩小直至所有字符都能显示。进一步的,所述三维引擎为BIM建筑信息模型中的三维图形引擎。本专利技术还提供了一种电子设备,该电子设备包括:存储装置;一个或多个处理器;其中,存储装置用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现前述的方法。本专利技术还提供了一种计算机程序产品,包括计算机程序指令,当所述指令由处理器执行时,用于实现前述的方法。本专利技术还提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序被执行时,实现前述的方法。与现有技术相比,本专利技术借助Rope数据结构对富文本进行编辑,取得了以下技术效果:(1)由于富文本以Rope数据结构存储,携带有不同格式的字符子串以Rope数据结构的叶子节点而划分,字符子串可以适应三维引擎显示区域的大小灵活显示在不同的行,从而实现富文本的多样式灵活显示;(2)由于富文本是以Rope数据结构存储,这种二叉树结构可以高效处理字符串的拼接、删除、随机访问,从而可以实现富文本的实时编辑、动态排版。同时本专利技术也可以用于二维图纸中,实现富文本的实时编辑、动态排版。附图说明图1为现有技术的文本显示样式图;图2为本专利技术的富文本显示样式图;图3为本专利技术的富文本编辑方法流程图;图4为本专利技术的富文本编辑器组成结构图。具体实施方式为了便于本领域普通技术人员理解和实施本专利技术,下面结合附图对本专利技术的技术方案进行清楚、完整地描述,应当理解,所描述的实施例仅仅用以解释本专利技术,并不限定本专利技术。本专利技术需要解决的是富文本文字的多样式问题,还需要解决富文本文字的动态排版问题。为此本专利技术采用了Rope数据结构。Rope是一个二叉树,叶子节点包含的是断开的字符子串,非叶子节点包含的是权重,权重=节点左边所有叶子节点的字符个数。一个字符串被分为两部分,Rope左子树包含的是字符串的左边部分,Rope右子树包含的是字符串的右边部分。如图3所示,本专利技术实施例提供了一种基于三维引擎的富文本编辑方法,包括以下步骤:S1.编辑生成符合Rope数据结构的字符串,所述Rope数据结构中各叶子节点的字符子串携带有相应的格式。该步骤中,使用带格式化的字符串来表示不同的文字格式,带格式化的字符串以Rope数据结构存放,这种数据结构可以高效处理字符串的拼接、查询、删除以及随机访问,因此符合Rope数据结构的格式化字符串可以被实时动态地进行插入、删除、修改等编辑操作。该步骤中,各字符子串携带的格式包括常见的文字格式,包括字体、字号、颜色、倾斜、粗细、中英文、下划线、删除线等等,也包括上述格式的组合,例如绿色宋体加粗字。S2.对所述Rope数据结构进行解析,依次读取所述Rope数据结构中各叶子节点的字符子串,并以相应的格式显示在三维引擎的指定显示区域;其中,根据三维引擎中指定显示区域的大小,以及各字符子串的格式,进行动态排版,所述排版包括换行、调整字符间距。该步骤中,对Rope本文档来自技高网...

【技术保护点】
1.一种基于三维引擎的富文本编辑方法,其特征在于,包括以下步骤:1)编辑生成符合Rope数据结构的字符串,所述Rope数据结构中各叶子节点的字符子串携带有相应的格式;2)对所述Rope数据结构进行解析,依次读取所述Rope数据结构中各叶子节点的字符子串,并以相应的格式显示在三维引擎的指定显示区域;其中,根据三维引擎中指定显示区域的大小以及各字符子串的格式,进行动态排版,所述排版包括换行、调整字符间距。

【技术特征摘要】
1.一种基于三维引擎的富文本编辑方法,其特征在于,包括以下步骤:1)编辑生成符合Rope数据结构的字符串,所述Rope数据结构中各叶子节点的字符子串携带有相应的格式;2)对所述Rope数据结构进行解析,依次读取所述Rope数据结构中各叶子节点的字符子串,并以相应的格式显示在三维引擎的指定显示区域;其中,根据三维引擎中指定显示区域的大小以及各字符子串的格式,进行动态排版,所述排版包括换行、调整字符间距。2.如权利要求1所述的方法,其特征在于,步骤1)中各叶子节点的字符子串携带的格式包括中英文、字体、字号、颜色、倾斜、粗细、下划线、删除线中的一种或多种的组合。3.如权利要求1所述的方法,其特征在于,基于Rope数据结构,步骤1)中生成的所述字符串能够被实时动态编辑,所述编辑包括插入、删除、修改。4.如权利要求1所述的方法,其特征在于,步骤2)中根据三维引擎中指定显示区域的宽度以及各字符子串的格式,确定每行所能显示的字符个数,据此进行换行或调整字符间距。5.如权利要求4所述的方法,其特征在于,步骤2)中,如果行尾遇到标点符号,则标点符号紧跟行尾显示,本行字符间距微调。6.如权利要求4所述的方法,其特征在于,步骤2)中,如果行尾遇到标点符号,则标点符号连同其之前的一个字符一起换行显示,且上一行字符间距微调。7.如权利要求1所述的方法,其特征在于,步骤2)中所述排版还包括缩进、调整行间距、调整段落间距,根据各字符子串所携带的格式信息进行解析而实现。8.如权利要求1所述的方法,其特征在于,步骤2)中如果所述指定显示区域字符排满之后仍有字符未显示,则将所有字符等比例缩小直至所有字符都能显示。9.如权利要求1所述的方法,其特征在于,所述三维引擎为BIM建筑信息模型中的三维图形引擎。10.一种基于三维引擎的富文本编辑器,其特征在于,包括以下模块:字符串编辑模块,用于编辑生成符合Rope数据结构的字符串,所述Rope数据结构中各叶子节点的字符子串携带有相应的格式;解析排版模块,用于对所述Rope数据结构进行解析,依次读取所述Rope数据结构中各叶子节点的字符子串,并以相应的格式显示在三维引擎的指...

【专利技术属性】
技术研发人员:张亚辉
申请(专利权)人:广联达科技股份有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1