一种实现三维图形界面互动式操作的方法

文档序号:6469645阅读:113来源:国知局
专利名称:一种实现三维图形界面互动式操作的方法
技术领域
本发明涉及一种图形界面操作的实现方法,更具体的,涉及一种实现三维图形界
面交互式操作的方法。
背景技术
三维图形界面在当今个人计算机系统中的应用已经相当普遍,然而,在嵌入式平 台下,由于软硬件的局限性,三维图形界面的应用并不多见,虽然,索尼公司的PSP,苹果公 司的iPhone具有不完全的三维图形界面,甚至用户也能够通过触摸屏操作iPhone这类产 品的简单三维图形界面,但是用户仍然无法通过触摸屏操作复杂的三维场景,也不能操作 三维(3D)模型上纹理贴图的某一个特定区域。 专利号为"US20080013860"的发明描述了一种创建三维图形界面的方法,该方法 揭示了一种由可交互的二维(2D)纹理贴图附着在3D模型表面而形成的三维图形界面。但 是,在实际应用中,三维图形界面上的3D模型可能是多个,因此需要一种方法使得计算机 能够知道用户选择了哪个3D模型;同时,由于三维图形界面上3D模型可以位移,旋转甚至 縮放,因此,在触摸屏上响应用户点击输入的区域也会随之动态发生变化。所以,如果按照 静态不变的响应用户点击输入区域来处理,将产生在动态的,随时更新的三维图形界面上, 用户无法对完全的三维图形界面进行交互操作的问题。

发明内容
本发明的目的是克服现有技术的不足,提供一种通过触摸屏对完全的三维图形界 面进行交互式操作的实现方法。 本发明的目的通过下述技术方案予以实现
(a)三维图形界面的触摸屏受用户点击触发; (b)在三维图形界面所展示的三维空间中,以观察点为原点,经显示屏上用户触发 点,得一条虚拟射线; (c)更新三维图形界面中3D模型的包围盒或包围球的位置,大小和方位; (d)根据虚拟射线以及包围盒或包围球的位置,进行相交性计算,判定哪个3D模
型被点中; (e)对于被点中的3D模型,针对进行点击检测的面和虚拟射线,通过坐标降次,转 化为XY\XZ\YZ 二维平面上的多边形和射线; (f)在上述二维平面上,对(e)步骤得到的射线和多边形,进行相交性计算,得到 交点,判断出哪个二维平面被点中; (g)根据(f)步骤计算得到的交点,转化为被点中面上的二维坐标; (h)根据(g)步骤被点中面上的二维坐标,判定用户点击到哪个区域,并触发相应事件。 所述触摸屏操作三维图形界面的过程中,响应用户点击输入的区域,分布在3D模型表面上,或者为整个3D模型。 所述三维图形界面中可以包含多个3D模型。 所述三维图形界面所包含的空间,可按纵向水平(XZ),纵向垂直(YZ)划分,形成 四个子空间,或者按纵向水平(XZ),纵向垂直(YZ),横向垂直(XY)划分,形成八个子空间, 使得每个子空间最大可能包含唯一的3D模型。 所述3D模型在三维图形界面中进行位移、旋转、縮放变化。
所述三维图形界面中的3D模型可以是多面体。 所述3D模型被包围盒或包围球包容在内,包围盒或包围球与3D模型上需要进行 点击检测的面共面。 所述3D模型可拆分为多个3D模型,由包围盒或包围球分别单独表示。 所述包围盒或包围球的位置,大小和方位随同3D模型位置,大小和方位的改变而
改变; 所述虚拟射线的位置与所述包围盒或包围球的位置更新,无先后顺序。
所述3D模型上需要进行点击检测的面由若干3D空间中的多边形平面构成。
所述坐标降次,是指将X-Y-Z直角坐标系所描述的点,线,面,通过投影,映射到 XY/XZ/YZ平面上,用三组二维坐标表示该点,线,面。
所述相交性计算包括以下步骤 1)计算三维空间中虚拟射线和包围盒或包围球的相交, 2)计算三维空间中虚拟射线与3D模型上需要进行点击检测的面,通过坐标降次, 转化为XY/XZ/YZ平面上的射线和多边形的相交; 所述的相交性计算在于如果第一步计算结果为不相交,那么不再进行第二步的相 交性计算。 所述被点中面上的二维坐标,是指在被点中面所构成的二维平面上,用X-Y直角
坐标系所描述的二维坐标,该坐标可以判定用户点击到被点中面的哪个区域。 所述虚拟射线穿过子空间,虚拟射线只对这些子空间中3D模型的包围盒,进行相
交性计算,得到最靠近用户的3D模型,不对所有的3D模型的包围盒逐一进行相交性计算。 所述虚拟射线对3D模型的包围盒进行相交性计算,通过坐标降次,转化为XY/XZ/
YZ平面上的多边形和射线,在二维平面上进行相交性计算,得到交点,以及二维平面被点
中; 所述虚拟射线对3D模型的包围盒进行相交性计算,得到相交与不相交两种结果, 在相交的情况下,由于包围盒与3D模型上需要进行点击检测的面共面,得到被点中面上的 二维坐标。 由上可知,本发明通过更新3D模型的包围盒(球)的位置,大小和方位,通过坐标 降次转化为XY/XZ/YZ平面上的射线和多边形的相交计算,解决了当3D模型动态发生位移, 旋转甚至縮放后,用户仍能在触摸屏上点击操作三维图形界面的问题,同时,利用包围盒与 3D模型上需要进行点击检测的面共面,以及坐标降次转化为XY/XZ/YZ平面上的射线和多 边形的相交性计算,快速解决3D模型是否被点中,以及其上哪块区域被点中的问题,因此, 可以通过触摸屏操作动态或静态的三维图形界面。


附图1是三维图形界面示例。 附图2是用户点击三维图形界面的示意图。 附图3是用户点击三维图形界面的俯视图。 附图4是用户点击三维图形界面的侧视图。 附图5是三维图形界面点击检测的流程图。 附图6是坐标降次计算2D坐标值示意图。
具体实施例方式
下面结合附图给出本发明较佳实施例,以详细说明本发明的技术方案。 如图1所示的三维图形界面示意图,图中汽车3D模型,由顶点数据和纹理贴图构
成,3D模型表面的文字区域可以响应用户的点击输入,当用户通过触摸屏点击相应文字的
时候,将会触发相应事件,响应用户操作,响应用户点击输入区域,也可以是整个3D模型。
同时,当3D模型在显示屏所展示的3D空间中位移,旋转甚至放縮时,用户仍能通过触摸屏
操作3D用户界面。縮小的汽车3D模型,表示三维图形界面中3D模型可以为多个。3D模型
上需要进行点击检测的面,是指3D模型表面上某些区域可以响应用户点击输入,该表面即
为3D模型上需要进行点击检测的面,它由若干3D空间中的多边形构成。 如图2所示的用户点击三维图形界面的示意图,其中 1)矩形区域为嵌入式平台系统的触摸屏,用户点击屏幕的坐标为[Screen(屏幕) X,屏幕Y]; 2)0bject(目标体)为三维图形界面中的3D模型,包围盒或包围球,是指一类长 方体或者球体,它将3D模型包裹在内,用于计算3D模型是否被点中;另外,在3D模型的表 面存在响应用户点击输入的特定区域时,包围盒或包围球包裹所需进行点击检测的面,用 于计算3D模型上哪块区域被点中,例如图1所示, 一个薄长方体包裹车顶篷,其上存在多个 按钮,薄长方体被点中后,进一步计算哪块区域被点中,即,哪个按钮被点中;最后,包围盒 (球)是指相对3D模型位置固定的长方体或者球体,它随3D模型的位置,大小和方位变化 而变化。3D模型如果比较复杂,则可以将其拆分为多个3D模型,由包围盒分别单独表示。
3)三维图形界面是显示屏所展示的三维图形空间,用户对其进行交互式操作;
4) Camera (摄像机)可随机选取,为显示屏所展示的3D空间的观察点(摄像机),;
5)Ray(射线)为以摄像机为原点,经过用户点击屏幕的坐标(屏幕X,屏幕Y)而 形成的一条虚拟射线; 6)当虚拟射线射线,与3D模型目标体相交的时候,则表示用户点中了该目标体, 将会触发相应事件; 7)当3D模型目标体表面具有如图1中多处响应事件的区域时,将进行如图3,4中 的相交性计算。 图3为用户点击三维图形界面的俯视图,图4为用户点击三维图形界面的侧视图, 以图4为例,3D模型目标体的面Plane (平面)上分布着3个按钮,当虚拟射线射线与目标 体相交,相交于点(x,y,z),将交点(x,y,z)通过坐标降次转换为被点中面Plane上的二维 坐标,然后判定Plane上那个按钮被点中。
所述坐标降次,是指将X-Y-Z直角坐标系所描述的点,线,面,通过投影,映射到 XY/XZ/YZ平面上,用三组二维坐标表示该点,线,面。 图5为本发明实现通过触摸屏对三维图形界面进行互动式操作的方法流程图,具 体步骤如下 步骤501 :触摸屏受用户点击触发,得到触摸点的屏幕坐标(屏幕X,屏幕Y),以三 维图形界面所表示的3D空间中的观察点(摄像机)为原点,经过触摸点(屏幕X,屏幕Y) 作一条虚拟射线射线; 步骤502 :将所述三维图形界面所展示的空间,按纵向水平(XZ),纵向垂直(YZ)划 分,形成四个子空间,或者按纵向水平(XZ),纵向垂直(YZ),横向垂直(XY)划分,形成八个 子空间,每次划分,使得每个子空间最大可能包含唯一的3D模型,同时更新3D模型的目标 体的位置,大小和方位,得到虚拟射线射线穿过的子空间; 所述虚拟射线穿过子空间,虚拟射线只对这些子空间中3D模型的包围盒,进行相 交性计算,不对所有的3D模型的包围盒逐一进行相交性计算,同时得到最靠近用户的3D模 型; 步骤503 :对步骤502中子空间包含的3D模型目标体,进行相交性计算,有两个步 骤l)包围盒或包围球将3D模型完整的包含在内,根据虚拟射线射线以及包围盒或包围 球进行相交性计算,判定哪个3D模型目标体被点中;2)包围盒或包围球与3D模型目标体 需要点击检测的面共面,包围盒或包围球和虚拟射线射线,通过坐标降次,转化为XY/XZ/YZ 平面上的多边形和射线,在二维平面上进行相交性计算。如果第一步计算结果为不相交,那 么不再进行第二步的相交性计算。 所述虚拟射线对3D模型的包围盒或包围球进行相交性计算,3D模型的包围盒或 包围球,以及所述虚拟射线,通过坐标降次,转化为XY/XZ/YZ平面上的多边形和射线,在2D 平面上进行相交性计算,得到交点,以及哪个面被点中; 所述虚拟射线对3D模型的包围盒进行相交性计算,得到相交与不相交两种结果, 在相交的情况下,由于包围盒与3D模型上需要进行点击检测的面共面,可以同时得到被点 中面上的二维坐标,减少了计算的复杂度,提高了效率。 步骤504 :将3D模型目标体和虚拟射线射线投影到由XY/XZ/YZ构成的2D坐标平 面上; 步骤505 :在XY/XZ/YZ构成的2D坐标平面上,对3D模型目标体和虚拟射线射线 的投影,进行相交性计算; 步骤506 :根据步骤505中虚拟射线射线与多边形交点,得到3D模型目标体那个 面被点中,以及被点中面上,交点的2D坐标。 所述被点中面上的二维坐标,是指在被点中面所构成的2D平面上,用X-Y直角坐
标系所描述的二维坐标,该坐标可以判定用户点击到被点中面的哪个区域。 步骤507 :根据所述被点中面上的二维坐标,判定用户点击到哪个区域,并触发相
应事件 如图6所示的坐标降次算法示意图,用于将虚拟射线射线与3D模型上进行的相交 性问题,转化为XY/XZ/YZ二维平面上的射线和多边形的相交问题,降低计算的复杂度,如 图6 (a)所示,在以3D模型目标体中心为坐标系原点的3D坐标系中,将3D模型目标体投影在X-Y平面上,得到边Pxl, Px2, Pyl和Py2 ;将虚拟射线射线投影在X-Y平面上,得到射线 射线'。射线射线'与边的相交顺序是Px2,Pxl,Py2和Pyl,因此虚拟射线射线与3D模型目 标体不相交;如图6(b)所示,射线射线'与边的相交顺序是Px2,Py2,Pxl和Pyl,因此虚拟 射线射线与3D模型目标体相交,且交点坐标是以0rigin(原点)为坐标系原点的坐标(x, y),由于是以3D模型目标体中心为坐标系原点的3D坐标系进行投影的,因此,边Py2即为 3D模型上的被用户点中的面的投影,同理,可以得到交点(x, z),根据x和z值即可以判定 用户点击到被点中面的哪个区域。
权利要求
一种通过触摸屏对三维图形界面进行交互式操作的实现方法,包括以下步骤(a)三维图形界面的触摸屏受用户点击触发;(b)在三维图形界面所展示的三维空间中,以观察点为原点,经显示屏上用户触发点,得一条虚拟射线;(c)更新三维图形界面中3D模型的包围盒或包围球的位置,大小和方位;(d)根据虚拟射线以及包围盒或包围球的位置,进行相交性计算,判定哪个3D模型被点中;(e)对于被点中的3D模型,针对进行点击检测的面和虚拟射线,通过坐标降次,转化为XY\XZ\YZ二维平面上的多边形和射线;(f)在上述二维平面上,对(e)步骤得到的射线和多边形,进行相交性计算,得到交点,判断出哪个二维平面被点中;(g)根据(f)步骤计算得到的交点,转化为被点中面上的二维坐标;(h)根据(g)步骤被点中面上的二维坐标,判定用户点击到哪个区域,并触发相应事件。
2. 如权利要求1所述的实现方法,其特征在于,所述触摸屏操作三维图形界面的过程 中,响应用户点击输入的区域,分布在3D模型表面上,或者为整个3D模型。
3. 如权利要求1所述的实现方法,其特征在于,所述三维图形界面中包含多个3D模型。
4. 如权利要求l所述的实现方法,其特征在于,所述三维图形界面所包含的空间,可 按纵向水平(XZ),纵向垂直(YZ)划分,形成四个子空间,或者按纵向水平(XZ),纵向垂直 (YZ),横向垂直(XY)划分,形成八个子空间,使得每个子空间最大包含唯一的3D模型。
5. 如权利要求1所述的实现方法,其特征在于,所述3D模型在三维图形界面中进行位 移、旋转、縮放变化。
6. 如权利要求1所述的实现方法,其特征在于,所述三维图形界面中的3D模型是多面体。
7. 如权利要求1所述的实现方法,其特征在于,所述三维图形界面中的3D模型是单面体。
8. 如权利要求1所述的实现方法,其特征在于,所述3D模型被包围盒或包围球包容在 内,包围盒或包围球与3D模型上需要进行点击检测的面共面。
9. 如权利要求1所述的实现方法,其特征在于,所述3D模型可拆分为多个3D模型,由 包围盒或包围球分别单独包容表示。
10. 如权利要求1所述的实现方法,其特征在于,所述包围盒或包围球的位置,大小和 方位随同3D模型位置,大小和方位的改变而改变。
11. 如权利要求1所述的实现方法,其特征在于,所述虚拟射线的位置与所述包围盒或 包围球的位置更新,无先后顺序。
12. 如权利要求1所述的实现方法,其特征在于,所述3D模型上需要进行点击检测的面 由若干3D空间中的多边形平面构成。
13. 如权利要求1所述的实现方法,其特征在于,所述坐标降次,是指将X-Y-Z直角坐标 系所描述的点,线,面,通过投影,映射到XY/XZ/YZ平面上,用三组二维坐标表示该点,线, 面。
14. 如权利要求1所述的实现方法,其特征在于,所述相交性计算包括以下步骤1) 计算三维空间中虚拟射线和包围盒或包围球的相交,2) 计算三维空间中虚拟射线与3D模型上需要进行点击检测的面,通过坐标降次,转化 为XY/XZ/YZ平面上的射线和多边形的相交。
15. 如权利要求1和14的实现方法,所述的相交性计算,其特征在于如果第一步计算结 果为不相交,那么不再进行第二步的相交性计算。
16. 如权利要求1所述的实现方法,其特征在于,所述被点中面上的二维坐标,是指在 被点中面所构成的二维平面上,用X-Y直角坐标系所描述的二维坐标,该坐标可以判定用 户点击到被点中面的哪个区域。
17. 如权利要求1和权利要求5所述的实现方法,其特征在于,所述虚拟射线穿过子空 间,虚拟射线只对这些子空间中3D模型的包围盒,进行相交性计算,得到最靠近用户的3D 模型,不对所有的3D模型的包围盒逐一进行相交性计算。
18. 如权利要求17所述的实现方法,其特征在于,所述虚拟射线对3D模型的包围盒进 行相交性计算,通过坐标降次,转化为XY/XZ/YZ平面上的多边形和射线,在二维平面上进 行相交性计算,得到交点,以及二维平面被点中。
19. 如权利要求18所述的实现方法,其特征在于,所述虚拟射线对3D模型的包围盒进 行相交性计算,得到相交与不相交两种结果,在相交的情况下,由于包围盒与3D模型上需 要进行点击检测的面共面,得到被点中面上的二维坐标。
全文摘要
本发明公开了一种通过触摸屏实现三维图形界面交互式操作的方法,包括以下步骤三维图形界面的触摸屏受用户点击触发,得到屏幕触发点,在三维空间中以观察点为原点,经显示屏上用户触发点,得一条虚拟射线;据虚拟射线以及包围盒或包围球的位置,进行相交性计算判定哪个子空间的3D模型目标体和虚拟射线相交;对于被点中的3D模型,通过坐标降次,转化为XY\XZ\YZ二维平面上的多边形和射线;在上述二维平面上,对得到的射线和多边形进行相交性计算得到交点;根据计算得到的交点,转化为被点中面上的二维坐标;根据被点中面上的二维坐标,判定用户点击到哪个区域,并触发相应事件。本发明通过触摸屏对完全的三维图形界面进行交互式操作。
文档编号G06F3/048GK101770324SQ200810205320
公开日2010年7月7日 申请日期2008年12月31日 优先权日2008年12月31日
发明者罗健, 蒋宜春 申请人:商泰软件(上海)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1