一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种三维汉字构建方法、系统、终端设备及存储介质与流程

2021-10-29 22:35:00 来源:中国专利 TAG:汉字 终端设备 构建 文字 方法


1.本发明涉及文字显示技术领域,尤其涉及一种三维汉字构建方法、系统、终端设备及存储介质。


背景技术:

2.在智慧城市业务的webgis系统中需要基于地理坐标标注一些汉字说明,例如主要的建筑顶上,重要设施等。业界已有的方案大多数是图片或扁平风格的文字标签,可以显示汉字信息但是缺乏立体美感,尤其是在webgis系统对三维物体的需求和使用日益增多的情况下,需要扩展一些以纯三维汉字标签来增强显示重点区域,建筑,设施,形成和一般二维扁平化风格汉字标签的区别。而现有技术中基本不会在显示汉字时显示三维字体,导致显示效果差。
3.因此,现有技术还有待改进和提高。


技术实现要素:

4.本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种三维汉字构建方法、系统、终端设备及存储介质,旨在解决现有技术中基本不会在显示汉字时显示三维字体,导致显示效果差的问题。
5.为了解决上述技术问题,本发明所采用的技术方案如下:
6.第一方面,本发明提供一种三维汉字构建方法,其中,所述方法包括:
7.获取目标汉字,并确定所述目标汉字所对应的矢量信息;
8.根据所述矢量信息,生成与所述目标汉字所对应的三维几何体;
9.对所述三维几何体进行可视化处理,得到所述三维汉字,以完成所述三维汉字的构建。
10.在一种实现方式中,所述获取目标汉字,并确定所述目标汉字所对应的矢量信息,包括:
11.获取所述目标汉字,根据所述目标汉字记载汉字字体库;
12.根据所述汉字字体库,确定所述目标汉字所对应的矢量信息。
13.在一种实现方式中,所述矢量信息包括所述目标汉字的初始坐标以及偏移坐标。
14.在一种实现方式中,所述根据所述矢量信息,生成与所述目标汉字所对应的三维几何体,包括:
15.将所述矢量信息输入至three.js引擎中,通过所述three.js引擎对所述矢量信息进行解析,得到字体信息;
16.根据所述字体信息,使用图形学方法生成几何体;
17.对所述几何体设置高度信息,得到所述三维几何体。
18.在一种实现方式中,所述字体信息包括:字体大小信息、字体厚度信息以及坐标信息。
19.在一种实现方式中,所述对所述三维几何体进行可视化处理,得到所述三维汉字,包括:
20.监听相机旋转事件,根据所述相机旋转事件,确定相机旋转角度;
21.根据所述相机旋转角度,设置所述三维汉字的旋转角度;
22.根据所述旋转角度,控制所述三维汉字的字体标签旋转,以使得所述字体标签面向屏幕。
23.在一种实现方式中,所述对所述三维几何体进行可视化处理,得到所述三维汉字,包括:
24.设置所述三维字体的颜色与透明度。
25.第二方面,本发明实施例还提供一种三维汉字构建系统,其中,所述系统包括:
26.矢量信息确定模块,用于获取目标汉字,并确定所述目标汉字所对应的矢量信息;
27.三维几何体生成模块,用于根据所述矢量信息,生成与所述目标汉字所对应的三维几何体;
28.三维汉字构建模块,用于对所述三维几何体进行可视化处理,得到所述三维汉字,以完成所述三维汉字的构建。
29.第三方面,本发明实施例还提供一种终端设备,其中,所述终端设备包括存储器、处理器及存储在所述存储器中并可在所述处理器上运行的三维汉字构建程序,所述处理器执行所述三维汉字构建程序时,实现上述方案中任一项所述的三维汉字构建方法的步骤。
30.第四方面,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有三维汉字构建程序,所述三维汉字构建程序被处理器执行时,实现上述方案中任一项所述的三维汉字构建方法的步骤。
31.有益效果:与现有技术相比,本发明提供了一种三维汉字构建方法,本发明首先获取目标汉字,并确定所述目标汉字所对应的矢量信息;根据所述矢量信息,生成与所述目标汉字所对应的三维几何体;对所述三维几何体进行可视化处理,得到所述三维汉字,以完成所述三维汉字的构建。本发明可以构建出更具美感以及立体感的三维字体,有益于和二维字体进行区分,提高了文字显示的效果。
附图说明
32.图1为本发明实施例提供的三维汉字构建方法的具体实施方式的流程图。
33.图2为本发明实施例提供的三维汉字构建方法中三维汉字转动的效果图。
34.图3是本发明实施例提供的三维汉字构建系统的原理框图。
35.图4是本发明实施例提供的终端设备的内部结构原理框图。
具体实施方式
36.为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
37.本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措
辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
38.本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
39.在智慧城市业务的webgis系统中需要基于地理坐标标注一些汉字说明,例如主要的建筑顶上,重要设施等。业界已有的方案大多数是图片或扁平风格的文字标签,可以显示汉字信息但是缺乏立体美感,尤其是在webgis系统对三维物体的需求和使用日益增多的情况下,需要扩展一些以纯三维汉字标签来增强显示重点区域,建筑,设施,形成和一般二维扁平化风格汉字标签的区别。而现有技术中基本不会在显示汉字时显示三维字体,导致显示效果差。
40.为了解决现有技术的问题,本实施例提供一种三维汉字构建方法,如图1中所示,所述方法包括如下步骤:
41.步骤s100、获取目标汉字,并确定所述目标汉字所对应的矢量信息。
42.具体实施时,本实施例首先选择mapboxgl.js和three.js作为开发工具。mapboxgl.js和three.js均是世界级开源图形引擎。mapboxgl.js是webgis领域的地图开源引擎,用作地理信系统。three.js是web端通用引擎,有丰富的社区开发组件和积累,高度抽象的图形绘制和拓展丰富的接口。采用开源技术能够在最短时间内搭建webgis系统,具备相当的成熟度和扩展性。其中mapboxgl.js可以将three.js作为一个图层单独渲染在地图中,而three.js丰富的接口支持图形学底层接口webgl的开发,利用webgl的管线编程可以调用gpu(图形加速器)的并行渲染力量计算模拟出逼真的水体模拟特效,从而使mapboxgl.js搭建的webgis系统拥有直通底层的能力,利用gpu(图形加速器)渲染出高效稳定特效。
43.接着,本实施例获取目标汉字,并根据所述目标汉字记载汉字字体库;然后根据所述汉字字体库,确定所述目标汉字所对应的矢量信息。比如,当目标汉字为“一”,则在汉字字体库中获取“一”的矢量信息,包括有“一”的初始坐标以及偏移坐标,即描述汉字“一”上所有点位相对于初始坐标的偏移量)。以汉字“一”来说存储的矢量信息是(0,0),(0.5,0),(1,0)三个坐标,由于简单可以很容易看出来这个矢量信息描述的就是构成汉字`一`的三个坐标点。其中第一个坐标(0,0)相对于初始坐标(初始坐标即汉字`一`被放置进webgis系统的坐标,有可能是任意的空间坐标)的偏移值都是0,即第一个坐标就是初始坐标.第二个坐标(0.5,0)则相对于初始坐标在x轴偏移了0.5个单位,同理第三个坐标在x轴偏移了1个单位。
44.步骤s200、根据所述矢量信息,生成与所述目标汉字所对应的三维几何体。
45.具体实施时,本实施例以汉字字体库为矢量信息源,根据输入的目标汉字查出对
应目标汉字的矢量信息,并且将这些矢量信息传入three.js引擎,为下一步矢量信息的解析可视化做准备。具体地,本实施例将所述矢量信息输入至three.js引擎中,通过所述three.js引擎对所述矢量信息进行解析,得到字体信息。然后根据所述字体信息,使用图形学方法生成几何体,并对所述几何体设置高度信息,得到所述三维几何体。所述字体信息包括:字体大小信息、字体厚度信息以及坐标信息。以汉字“一”为例,本实施例将汉字“一”的矢量信息传入three.js引擎,目的是为了让引擎可以解析并利用图形学方法生成一个几何体(geometry),再将这个几何体设置一定的高度(三维文字的厚度)就可以得到三维汉字实体文字。具体解析过程如下:准备好初始坐标,目标汉字“一”的矢量信息,字体大小,字体厚度信息这些必要的基础信息。根据目标汉字“一”的矢量信息,字体大小,字体厚度,和初始坐标计算出目标汉字“一”在空间坐标的实际位置坐标。以目标汉字“一”具体的矢量信息为例,本实施例首先求解初始坐标对应的空间坐标,之后将三个偏移坐标加上初始坐标对应的空间坐标,得到汉字“一”的几何体在空间坐标的实际三个顶点位置。根据三个顶点位置,设置geometry的顶点顺序为0
‑1‑
2即按照矢量信息中顶点的排列顺序设置其序号,不论是复杂汉字或简单汉字均遵照这个规律进行设置即可。因此就得到一个明确了顶点序号和顶点坐标的geometry平面几何体,其实已经得到了汉字“一”的平面图.此时需要根据字体厚度将这个平面拉伸起来.具体的算法是将每个顶点克隆一份,将克隆的顶点的z分量(初始是0)加上字体厚度得到一个新的z值,存储新的坐标,得到一个带有两个平面(一高一低)的新几何体geometry。本实施例中目标汉字“一”的矢量信息,字体大小,字体厚度,和初始坐标计算出带有两个平面(一高一低)的新几何体geometry是三维汉字标签的骨架,为可视化做准备。
46.步骤s300、对所述三维几何体进行可视化处理,得到所述三维汉字,以完成所述三维汉字的构建。
47.具体实施时,以目标汉字“一”为例,此时得到的几何体geometry是汉字“一”的骨架,但是无法被看到,必须准备一个three.js材质three.meshbasicmaterial(也可以实用其他材质,该材质是最简单基础的材质用来举例),将得到的新几何体geometry和这个three.meshbasicmaterial共同传递给three.mesh,即可完成汉字“一”的可视化,并且可以在材质中设置颜色,透明度等属性。此外,本实施例好需要保证三维汉字的字体标签与相机视角垂直,即不论在webgis中视角如何转动,三维汉字标签的正面永远面向屏幕。因此,本实施例首先监听相机旋转事件,根据所述相机旋转事件,确定相机旋转角度;然后根据所述相机旋转角度,设置所述三维汉字的旋转角度。最后根据所述旋转角度,控制所述三维汉字的字体标签旋转,以使得所述字体标签面向屏幕。具体地,本实施例使用map.getbearing()方法可以拿到实时的相机转动角度。由于三维汉字的字体标签也是一个三维体,具备转动的功能。本实施例直接使用mesh.rotatey()方法就可以让它相对于地面垂直方向转一定角度。并且,只有在webgis地图相机转动角度发生变化时候文字才需要转动,那么我们用map.on(`rotate`,()=>{})监听来自相机的旋转事件,当监听到旋转事件发生时,立刻使用map.getbearing()方法拿到实时的相机转动角度,再使用mesh.rotatey()方法给三维汉字标签设置转动角度,就可以实现三维汉字标签跟随webgis相机转动角度进行同步转动了,这样就可以保证所三维汉字的字体标签始终面向屏幕。本实施例利用监听webgis系统相机转动事件,监听相机转动并计算文本的转动角度和实现文本转动,实现了三维汉字标
签跟随相机转动角度的效果,效果如图2中所示。
48.综上,本实施例首先获取目标汉字,并确定所述目标汉字所对应的矢量信息;根据所述矢量信息,生成与所述目标汉字所对应的三维几何体;对所述三维几何体进行可视化处理,得到所述三维汉字,以完成所述三维汉字的构建。本发明可以构建出更具美感以及立体感的三维字体,有益于和二维字体进行区分,提高了文字显示的效果。
49.基于上述实施例,本发明害提供一种三维汉字构建系统,如图3中所示,所述方法包括:矢量信息确定模块10、三维几何体生成模块20以及三维汉字构建模块30。具体地,所述矢量信息确定模块10,用于获取目标汉字,并确定所述目标汉字所对应的矢量信息;所述三维几何体生成模块20,用于根据所述矢量信息,生成与所述目标汉字所对应的三维几何体;所述三维汉字构建模块30,用于对所述三维几何体进行可视化处理,得到所述三维汉字,以完成所述三维汉字的构建。
50.在一种实现方式中,矢量信息确定模块10,包括:
51.汉字字体库确定单元,用于获取所述目标汉字,根据所述目标汉字记载汉字字体库;
52.矢量信息确定单元,用于根据所述汉字字体库,确定所述目标汉字所对应的矢量信息。
53.在一种实现方式中,所述三维几何体生成模块20,包括:
54.字体信息确定单元,用于将所述矢量信息输入至three.js引擎中,通过所述three.js引擎对所述矢量信息进行解析,得到字体信息;
55.几何体生成单元,用于根据所述字体信息,使用图形学方法生成几何体;
56.三维几何体生成单元,用于对所述几何体设置高度信息,得到所述三维几何体。
57.在一种实现方式中,所述对所述三维几何体进行可视化处理,得到所述三维汉字,包括:
58.相机旋转角度单元,用于监听相机旋转事件,根据所述相机旋转事件,确定相机旋转角度;
59.旋转角度设置单元,用于根据所述相机旋转角度,设置所述三维汉字的旋转角度;
60.旋转控制单元,用于根据所述旋转角度,控制所述三维汉字的字体标签旋转,以使得所述字体标签面向屏幕。
61.基于上述实施例,本发明还提供了一种终端设备,其原理框图可以如图4所示。该终端设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏、温度传感器。其中,该终端设备的处理器用于提供计算和控制能力。该终端设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该终端设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种三维汉字构建方法。该终端设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该终端设备的温度传感器是预先在终端设备内部设置,用于检测内部设备的运行温度。
62.本领域技术人员可以理解,图4中示出的原理框图,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的终端设备的限定,具体的终端设备以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
63.在一个实施例中,提供了一种终端设备,终端设备包括存储器、处理器及存储在存储器中并可在处理器上运行的三维汉字构建程序,处理器执行三维汉字构建程序时,实现如下操作指令:
64.获取目标汉字,并确定所述目标汉字所对应的矢量信息;
65.根据所述矢量信息,生成与所述目标汉字所对应的三维几何体;
66.对所述三维几何体进行可视化处理,得到所述三维汉字,以完成所述三维汉字的构建。
67.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
68.综上,本发明公开了一种三维汉字构建方法、系统、终端设备设备及存储介质,所述方法包括:获取目标汉字,并确定所述目标汉字所对应的矢量信息;根据所述矢量信息,生成与所述目标汉字所对应的三维几何体;对所述三维几何体进行可视化处理,得到所述三维汉字,以完成所述三维汉字的构建。本发明可以构建出更具美感以及立体感的三维字体,提高了文字显示的效果。
69.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜