模型透视方法、智能终端以及存储装置与流程

专利2022-05-10  37



1.本发明涉及模型显示领域,尤其涉及一种模型透视方法、智能终端以及存储装置。


背景技术:

2.在cad的产品模型中,会存在很多相互遮挡或包含的零部件模型,而且单个模型也存在不同实体的相互遮挡,终端在显示这些模型时,会根据模型中不同部件或实体之间的遮挡关系选择不被遮挡的部分进行显示。
3.然而,用户在查看或处理模型时,经常需要选择模型中被遮挡的部分进行显示。为了达到该目的,需要手动先一个个选择前面的遮挡零部件或实体进行隐藏,直至被遮挡的对象前不存在能够遮挡其的零部件或实体。而且,在用户需要查看被隐藏的物体时,又需要手动对被隐藏的物体一一进行恢复显示操作。操作繁琐,耗时长,降低了工作效率和交互体验。


技术实现要素:

4.为了克服现有技术的不足,本发明提出一种模型透视方法、智能终端以及存储装置,根据鼠标坐标、视图方向计算当前穿透面,获取候选实体列表、剔除面列表,并根据获取的用户深度值、当前的深度值获取当前隐藏的面和显示的面以进行模型的透视和恢复,无需手动对模型进行隐藏和恢复显示操作,操作简单、耗时短,提高了用户的交互体验。
5.为解决上述问题,本发明采用的一个技术方案为:一种模型透视方法,所述模型透视方法包括:s101:获取透视选择信息,根据所述透视选择信息计算当前穿透面,所述透视选择信息包括鼠标坐标、视图方向;s102:根据所述当前穿透面确定透视信息,持续获取用户深度值,根据所述用户深度值、当前面的深度值以及透视信息进行模型的透视和恢复,所述透视信息包括候选实体列表、剔除面列表。
6.进一步地,所述获取透视选择信息的步骤之前还包括:判断是否接收到透视指令;若是,则执行s101;若否,则不执行s101。
7.进一步地,所述根据所述透视选择信息计算当前穿透面的步骤具体包括:通过所述鼠标坐标、视图方向获取选取点在世界坐标系中的世界坐标以及世界视图方向,并利用所述世界坐标、世界视图方向生成射线,根据所述射线获取当前穿透面。
8.进一步地,所述根据所述当前穿透面确定透视信息的步骤具体包括:将所述射线与所述当前穿透面进行线面求交获取所述射线与所述当前穿透面的交点的坐标;根据所述交点的坐标、世界视图方向获取所述交点的深度值,基于所述深度值生成候选实体列表和剔除面列表。
9.进一步地,所述基于所述深度值生成候选实体列表和剔除面列表的步骤具体包括:根据所述当前穿透面上交点的深度值对所述当前穿透面进行排序,基于排序生成候选实体列表,并将模型中处于剔除状态且与所述射线相交的面放入剔除面列表。
10.进一步地,所述持续获取用户深度值的步骤具体包括:持续检测深度输入信息,根
据所述深度输入信息、当前坐标深度、透视信息确定用户深度值。
11.进一步地,所述根据所述用户深度值、当前面的深度值以及透视信息进行模型的透视和恢复的步骤具体包括:判断所述用户深度值是否小于当前面的深度值;若是,则将所述剔除面列表中深度值大于所述当前面的剔除面确定为非透视状态,根据所述非透视状态修改所述透视信息,并基于修改后的透视信息绘制所述模型;若否,则在所述用户深度值大于所述当前面的深度值时,将所述候选实体列表中深度值小于所述用户深度值的面确定为透视状态,根据所述透视状态修改所述透视信息,并基于修改后的透视信息绘制所述模型。
12.进一步地,所述根据所述用户深度值、当前面的深度值以及透视信息进行模型的透视和恢复的步骤之后还包括:判断是否检测到透视对象改变信息,所述透视对象改变信息包括模型旋转、鼠标移动中的至少一种;若是,则执行s101;若否,则根据用户深度值进行模型的显示。
13.基于相同的发明构思,本发明还提出一种智能终端,所述智能终端包括处理器、存储器,所述存储器存储有计算机程序,所述处理器根据所述计算机程序执行如上所述的模型透视方法。
14.基于相同的发明构思,本发明还提出一种存储装置,所述存储装置存储有程序数据,所述程序数据被用于执行如上所述的模型透视方法。
15.相比现有技术,本发明的有益效果在于:根据鼠标坐标、视图方向计算当前穿透面,获取候选实体列表、剔除面列表,并根据获取的用户深度值、当前的深度值获取当前隐藏的面和显示的面以进行模型的透视和恢复,无需手动对模型进行隐藏和恢复显示操作,操作简单、耗时短,提高了用户的交互体验。
附图说明
16.图1为本发明模型透视方法一实施例的流程图;图2为本发明应用模型透视方法终端一实施例的功能架构图;图3为本发明模型透视方法另一实施例的流程图;图4为本发明模型透视方法又一实施例的流程图;图5为本发明智能终端一实施例的结构图;图6为本发明存储装置一实施例的结构图。
具体实施方式
17.下面,结合附图以及具体实施方式,对本发明做进一步描述,需要说明的是,在不相冲突的前提下,以下描述的各实施例之间或各技术特征之间可以任意组合形成新的实施例。
18.请参阅图1

4,图1为本发明模型透视方法一实施例的流程图;图2为本发明应用模型透视方法终端一实施例的功能架构图;图3为本发明模型透视方法另一实施例的流程图;图4为本发明模型透视方法又一实施例的流程图,结合图1

4对本发明模型透视方法进行详细说明。
19.在本实施例中,应用模型透视方法的智能终端可以为手机、笔记本电脑、台式机、一体机、平板电脑、服务器、云平台以及其他能够显示模型并根据接收的指令对模型进行编
辑的器件。
20.在本实施例中,智能终端用于执行模型透视方法的功能模块包括响应模块、显示模块、选取模块、透视技术模块和数据模块,其中,响应模块位于表示层,显示模块、选取模块、透视技术模块位于业务层,数据模块位于数据层。智能终端中的处理器根据存储器中的计算机程序运行上述功能模块实现模型透视方法。
21.其中,响应模块包括智能终端的输入和输出,包括显示器和鼠标,响应模块获取的输入为鼠标坐标信息、鼠标滚轮信息和视图方向信息,输出为屏幕显示信息。显示模块用于模型显示,从而实现透视功能。显示模块应用了opengl技术,cad中的三维实体的遮挡显示就是通过opengl的深度测试实现的,opengl存储将所有深度信息于一个z缓冲(z

buffer)中,也被称为深度缓冲(depth buffer)。opengl的应用框架glfw自动生成z缓冲。模型中每个像素的深度值存储在z缓冲的每个片段里面,当片段想要输出像素的颜色时,opengl会将像素的深度值和z缓冲进行比较,如果当前的片段在其他片段之后,它将会被丢弃,否则将会覆盖。这个过程称为深度测试(depth testing),它是由opengl自动完成的。
22.选取模块主要用于模型的选取,从而实现透视情况下的面选取功能。选取功能主要应用了“射线法、面的策略排序”等技术对实体进行深度排序,通过构造候选实体,可以实现不同深度的实体的选取。
23.透视技术模块存储透视功能中的一些计算方法和数据维护方式,主要有深度规则和剔除规则。深度规则指用户深度值的计算方式,用户深度值的计算方式,决定了功能的易用性,用户深度值d
user
与鼠标滚轮的滚动值m、当前的候选面个数n
can
、当前的剔除面个数n
del
有关以及当前面的深度值d
pre
有关,即d
user
=(m,n
can
,n
del
,d
pre
)。剔除规则指在透视过程中剔除面的判断准则和剔除面数据的维护方式,对于透视功能,需要考虑到被透视面恢复的情况,因此需要将剔除面数据进行保存。透视技术模块维护一个剔除面列表,与选取模块中的候选实体列表相对应(候选实体列表保存了所有被射线法穿透的面的数据,并按深度值大小进行排序)。需要注意,剔除面列表与候选实体列表的交集为空。根据模型的透视、回复情况实时对两个列表进行更新,并利用选取模块实现面的选取剔除。
24.数据模块主要用于保存各模块中的数据信息。
25.当智能终端开启透视功能后,自动地获取设备的响应输入,主要包括鼠标坐标,视图方向和鼠标滚轮值。根据响应输入的信息,智能终端得以构造相应的数据,主要包括候选实体列表,剔除面列表和用户深度值。获得数据后,智能终端再次调用显示模块和选取模块,实现当前模型的透视或恢复功能。当鼠标移动或旋转视图时,智能终端动态地获取新的响应输入,并重复上述流程。
26.通过坐标变换和视图旋转快速选择当前需透视和显示的面,模型透视方法的使用可以更加方便灵活,大大提高了设计人员的效率。
27.在本实施例中,模型透视方法包括:s101:获取透视选择信息,根据透视选择信息计算当前穿透面,透视选择信息包括鼠标坐标、视图方向。
28.智能终端获取鼠标坐标、视图方向,根据该鼠标坐标、视图方向计算模型当前可能被透视的当前穿透面。利用该当前穿透面为后续模型的透视、恢复提供参考信息。通过鼠标坐标获取当前选取的面以及选取点在模型上的三维坐标值。
29.在本实施例中,获取透视选择信息的步骤之前还包括:判断是否接收到透视指令;若是,则执行s101;若否,则不执行s101。
30.其中,智能终端在获取透视选择信息时,还自动采集用户的鼠标滚轮值。
31.在一个具体的实施例中,智能终端在确定接收到开启透视功能的指令后,开启透视功能,并自动获取用户的透视选择信息和鼠标滚轮值。
32.根据透视选择信息计算当前穿透面的步骤具体包括:通过鼠标坐标、视图方向获取选取点在世界坐标系中的世界坐标以及世界视图方向,并利用世界坐标、世界视图方向生成射线,根据射线获取当前穿透面。
33.在本实施例中,鼠标坐标为鼠标在屏幕上的当前屏幕坐标点,通过当前屏幕坐标点p0和视图方向计算当前屏幕坐标点在世界坐标系中的世界坐标p1和视图方向对应的世界视图方向。
34.在一个具体的实施例中,获取世界坐标、世界视图方向后,使用射线法计算当前穿透面,以世界坐标和世界视图方向构造射线,并使射线穿透当前模型,得到模型中被射线穿透的当前穿透面。
35.s102:根据当前穿透面确定透视信息,持续获取用户深度值,根据用户深度值、当前面的深度值以及透视信息进行模型的透视和恢复,透视信息包括候选实体列表、剔除面列表。
36.在本实施例中,根据当前穿透面确定透视信息的步骤具体包括:将射线与当前穿透面进行线面求交获取射线与当前穿透面的交点的坐标;根据交点的坐标、世界视图方向获取交点的深度值,基于深度值生成候选实体列表和剔除面列表。
37.其中,基于深度值生成候选实体列表和剔除面列表的步骤具体包括:根据当前穿透面上交点的深度值对当前穿透面进行排序,基于排序生成候选实体列表,并将模型中处于剔除状态且与射线相交的面放入剔除面列表。
38.在一个具体的实施例中,交点在世界坐标系中的坐标为(p
x
,p
y
,p
z
),世界视图方向为(v
x
,v
y
,v
z
),交点的深度d=p
x*
v
x
p
y*
v
y
p
z*
v
z
。其中,p
x
,p
y
,p
z
分别为交点在世界坐标系的x、y、z轴上的坐标,v
x
,v
y
,v
z
为世界视图方向在世界坐标系的x、y、z轴上的向量,交点的深度值为d。根据交点的深度值对当前穿透面进行排序,其中,将被当前穿透面中被剔除即被透视的实体添加到剔除面列表,未被透视的面添加到候选实体列表。
39.持续获取用户深度值的步骤具体包括:持续检测深度输入信息,根据深度输入信息、当前坐标深度、透视信息确定用户深度值。
40.在本实施例中,深度输入信息为鼠标滚轮的滚动值,在其他实施例中,深度输入信息也可以为数字、字符、特殊字符以及其他能够识别且能够根据其获取用户深度值的信息。
41.在一个具体的实施例中,智能终端检测鼠标滚轮的滚动事件,当获取鼠标滚轮的滚动事件后,根据鼠标滚轮的滚动值以及当前的候选实体个数,当前剔除面个数以及当前鼠标坐标的深度计算用户深度值,其中,通过d
user
=(m,n
can
,n
del
,d
pre
)进行计算,用户深度值为d
user
,鼠标滚轮的滚动值为m、当前的候选面个数为n
can
、当前的剔除面个数为n
del
,当前面的深度值为d
pre
。将滚动值转换为当前的视图方向上的深度值,该深度值为用户深度值。
42.在本实施例中,根据用户深度值、当前面的深度值以及透视信息进行模型的透视
和恢复的步骤具体包括:判断用户深度值是否小于当前面的深度值;若是,则将剔除面列表中深度值大于当前面的剔除面确定为非透视状态,根据非透视状态修改透视信息,并基于修改后的透视信息绘制模型;若否,则在用户深度值大于当前面的深度值时,将候选实体列表中深度值小于用户深度值的面确定为透视状态,根据透视状态修改透视信息,并基于修改后的透视信息绘制模型。其中,当前面为当前用户选取的面即鼠标坐标所在的面。
43.在一个具体的实施例中,智能终端将用户深度值与候选实体列表中候选面的深度值进行比较,当用户深度值大于当前面的深度值时,即当前面应当被透视。对于应当被透视的面,通过重绘当前模型的显示从而隐藏应当被透视的面,再通过更新候选实体列表,将被透视的面剔除,并将其保存在剔除面列表中。此时被透视的面在屏幕上不可见且无法选取操作。此时,可以对智能终端上显示的面进行选取、执行建模命令等操作。
44.在另一个具体的实施例中,当用户深度值小于当前面的深度值时,将其与剔除面列表中最近剔除面的深度值进行比较。当用户深度值大于最近剔除面深度时,即认为此时被剔除的面重新回到了非透视状态。同样地,重绘当前模型从而显示深度值小于等于用户深度值的剔除面中深度值最大的剔除面,并同步更新候选列表和剔除面列表。此时我们可以对当前显示面进行选取、执行建模命令等操作。
45.在本实施例中,根据用户深度值、当前面的深度值以及透视信息进行模型的透视和恢复的步骤之后还包括:判断是否检测到透视对象改变信息,透视对象改变信息包括模型旋转、鼠标移动中的至少一种;若是,则执行s101;若否,则根据用户深度值进行模型的显示。
46.在其他实施例中,透视对象改变信息还可以为用户输入的替换、隐藏、拖动等能够改变鼠标坐标的模型编辑操作。
47.有益效果:本发明的模型透视方法根据鼠标坐标、视图方向计算当前穿透面,获取候选实体列表、剔除面列表,并根据获取的用户深度值、当前的深度值获取当前隐藏的面和显示的面以进行模型的透视和恢复,无需手动对模型进行隐藏和恢复显示操作,操作简单、耗时短,提高了用户的交互体验。
48.基于相同的发明构思,本发明还提出一种智能终端,请参阅图5,图5为本发明智能终端一实施例的结构图。结合图5对本发明的智能终端进行说明。
49.在本实施例中,智能终端包括处理器、存储器,存储器存储有计算机程序,处理器根据计算机程序执行如上述实施例所述的模型透视方法。
50.基于相同的发明构思,本发明还提出一种存储装置,请参阅图6为本发明存储装置一实施例的结构图,结合图6对本发明的存储装置进行说明。
51.在本实施例中,存储装置存储有程序数据,该程序数据被用于执行如上述实施例所述的模型透视方法。
52.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
53.对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一
致的最宽的范围。
转载请注明原文地址:https://doc.8miu.com/read-1450123.html

最新回复(0)