首页> 中国专利> 九宫格绘制方法、装置及九宫格旋转方法、装置

九宫格绘制方法、装置及九宫格旋转方法、装置

摘要

本发明适用于多媒体应用领域,提供了一种九宫格绘制方法、装置、基于所绘九宫格的九宫格旋转方法及装置,所述九宫格绘制方法包括:加载九宫格各个图标及背景的顶点,并将九宫格的投影模式设置为透视投影;采用不同的纹理分别绘制九宫格的背景及各个图标。在本发明实施例中,由于采用了多重纹理混合的方式实现九宫格的绘制,若九宫格中的图标发生了变化,则只需要替换发生变化的图标,不需要替换整个九宫格,保证了九宫格的绘制效率。

著录项

  • 公开/公告号CN102855604A

    专利类型发明专利

  • 公开/公告日2013-01-02

    原文格式PDF

  • 申请/专利权人 TCL集团股份有限公司;

    申请/专利号CN201210280125.5

  • 申请日2012-08-08

  • 分类号G06T3/60;G06T15/80;G06T15/04;

  • 代理机构深圳中一专利商标事务所;

  • 代理人张全文

  • 地址 516001 广东省惠州市鹅岭南路6号TCL工业大厦8楼技术中心

  • 入库时间 2024-02-19 17:08:41

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-08-18

    未缴年费专利权终止 IPC(主分类):G06T 3/60 专利号:ZL2012102801255 申请日:20120808 授权公告日:20160831

    专利权的终止

  • 2016-08-31

    授权

    授权

  • 2013-09-18

    实质审查的生效 IPC(主分类):G06T3/60 申请日:20120808

    实质审查的生效

  • 2013-01-02

    公开

    公开

说明书

技术领域

本发明属于多媒体应用领域,尤其涉及一种九宫格绘制方法、装置及九 宫格旋转方法、装置。

背景技术

传统的九宫格实现方式是用程序动态的将九个图标和一个背景图合成一张 图片后再将该图片生成一张九宫格的纹理。因此,当其中一个图标发生变化时 必须要重新将9个图标及背景合成新的图片并重新生成一张所有图标及背景的 纹理,使得图标变化的处理效率极为低下。在每次改变九宫格时,需要重新获 取9个图标的图像文件进行解码,并将9个图标合成到一张图片上,若所获取 的9张图片大小不一致,还需要对图片本身进行拉伸或者放缩,占用过多的 CPU、内存资源。此外,传统的九宫格实现方式还不能动态的修改每个图标的 显示效果。

发明内容

本发明实施例的目的在于提供一种九宫格绘制方法、装置及九宫格旋转方 法、装置,旨在解决现有的九宫格实现方式使得需要改变九宫格中图标时,处 理效率过低的问题。

本发明实施例是这样实现的,一种九宫格绘制方法,所述方法包括:

加载九宫格各个图标及背景的顶点,并将所述九宫格的投影模式设置为透 视投影;

采用不同的纹理分别绘制所述九宫格的背景及各个图标。

本发明实施例的另一目的在于提供一种九宫格绘制装置,所述装置包括:

九宫格初始设置单元,用于加载九宫格各个图标及背景的顶点,并将所述 九宫格的投影模式设置为透视投影;

九宫格绘制单元,用于采用不同的纹理分别绘制所述九宫格的背景及各个 图标。

在本发明实施例中,由于采用了多重纹理混合的方式实现九宫格的绘制, 若九宫格中的图标发生了变化,则只需要替换发生变化的图标,不需要替换整 个九宫格,保证了九宫格的绘制效率。

本发明实施例的另一目的在于提供一种基于所绘九宫格的九宫格旋转方 法,所述方法包括:

接收到九宫格旋转指令时,将所述九宫格转换为3D九宫格,并将投影模 式由透视投影改为平行投影,所述3D九宫格包括两面所述九宫格;

设置所述3D九宫格的旋转参数,使所述3D九宫格围绕设定的轴旋转。

本发明实施例的另一目的在于提供一种基于所绘九宫格的九宫格旋转装 置,所述装置包括:

九宫格转换单元,用于接收到九宫格旋转指令时,将所述九宫格转换为3D 九宫格,所述3D九宫格包括两面所述九宫格;

投影模式转换单元,用于将投影模式由透视投影改为平行投影;

九宫格旋转单元,用于设置所述3D九宫格的旋转参数,使所述3D九宫格 围绕预设的轴旋转。

在本发明实施例中,通过平行投影的方式实现3D九宫格,不仅实现了3D 的九宫格,九宫格还能围绕预设的轴进行旋转,且避免了采用透视投影方式时 由于眼睛的视角不同,造成看到双面3D九宫格的侧面为空的问题;也避免了 采用透视投影方式时若在两个侧面都绘制九宫格,则会由于增加顶点数量导致 帧率的降低,且侧面看到的九宫格图标不美观的问题。

附图说明

图1是本发明提供的一种九宫格绘制方法第一实施例的流程图;

图2是本发明提供的一种优选的九宫格绘制方法第二实施例的流程图;

图3是本发明提供的一种基于实施例一或实施例二所绘制的九宫格来实现 的一种九宫格旋转方法的流程图;

图4是本发明提供的一种优选的九宫格绘制装置第四实施例的结构示意 图;

图5是本发明提供的优选的九宫格绘制装置第五实施例的结构示意图;

图6是本发明第六实施例提供的一种基于实施例四或实施例五所绘制的九 宫格的九宫格绘制装置结构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实 施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅 仅用以解释本发明,并不用于限定本发明。

为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。

实施例一:

如图1所示为本发明第一实施例提供的一种优选的九宫格绘制方法的流程 图,为了便于说明,仅示出了与本发明实施例相关的部分。

在步骤S101中,加载九宫格各个图标及背景的顶点,并将九宫格的投影模 式设置为透视投影。

在本发明实施例中,将九宫格的九个图标及背景的顶点坐标加载至内存, 其中,每个图标有四个顶点,背景也有四个顶点,共加载40个顶点坐标至内存。 并通过在透视投影函数中设置透视投影的各个参数将九宫格的投影模式设置为 透视投影,其中,将九宫格的投影模式设置为透视投影的方法在此不做限制, 使用的透视投影函数不同,相应设置的参数也不同。由于在计算机图形中,3D 图的默认投影模式为透视投影,因而在此先将九宫格的投影模式设置为透视投 影。

例如:若使用下述函数设置投影模式为透视投影

Void gluPerspective(GLdouble fovy,GLdouble aspect,GLdouble zNear,GLdouble  zFar);

则需要获得四个参数:fovy、aspect、zNear及zFar。其中,参数fovy定义 视野在X-Z平面的角度,范围是[0.0,180.0];参数aspect是投影平面宽度与高 度的比率;参数zNear和Far分别是远近裁剪面到眼睛的距离,它们总为正值。

在本发明实施例中,既可以先加载九宫格各个图标及背景的顶点,也可以 先将九宫格的投影模式设置为透视投影,其顺序不受限制。

在步骤S102中,采用不同的纹理分别绘制九宫格的背景及各个图标。

在本发明实施例中,当九宫格的顶点加载完毕且九宫格投影模式设置好后, 将九宫格的九个图标及背景图片分别生成不同的纹理,即生成10个纹理,然后 由这10个不同的纹理分别绘制九宫格的背景及各个图标。其中,在绘制九宫格 的过程中,先绘制背景纹理,并在背景纹理绘制好后设置纹理的混合参数,采 用多重纹理混合的方式,在背景纹理上依次绘制各个图标的纹理。一般而言, 采用一种单独的颜色作为九宫格的背景,然后将各个图标的图片分别作为对应 图标的纹理,此时若图标发生了变化,则只需要替换发生变化的图标对应的纹 理,不需要替换整个九宫格,保证了九宫格的绘制效率。

在本发明实施例中,由于采用了多重纹理混合的方式实现九宫格的绘制, 若九宫格中的图标发生了变化,则只需要替换发生变化的图标,不需要替换整 个九宫格,保证了九宫格的绘制效率。

实施例二:

由于现有的九宫格不能动态的修改每个图标的显示效果。因此如图2所示 为本发明第二实施例提供的基于实施例一绘制的九宫格的一种优选的九宫格的 实现方法的流程图,为了便于说明,仅示出了与本发明实施例相关的部分。

在如图1所述的步骤S101及步骤S102后,本发明第二实施例提供的优选 的九宫格的实现方法还包括下述步骤:

在步骤S201中,判断接收到的是图标点亮指令还是图标灰度指令,若是图 标点亮指令则执行步骤S202,若是图标灰度指令则执行步骤S203。

在步骤S202中,将预设的高亮蒙版图片与图标点亮指令指定的图标混合生 成一个纹理,并将该纹理绘制于九宫格中图标点亮指令指定的图标上。

在步骤S203中,将预设的灰色蒙版图片与图标灰度指令指定的图标混合生 成一个纹理,并将该纹理绘制于九宫格中图标灰度指令指定的图标上。

在本发明实施例中,为了单独给九宫格中的各个图标实现动态的高亮或灰 度的显示效果,预先制作了一副高亮蒙版图片和一副灰色蒙版图片,其中,高 亮蒙版图片与灰色蒙版图片与图标大小一致。

当接收到用户输入的图标点亮指令时,通过设置混合参数将预先制作的高 亮蒙版图片与图标点亮指令指定的图标混合生成一个纹理,并将该纹理绘制于 九宫格中所述图标点亮指令指定的图标上,使该图标呈现高亮显示。

当接收到用户输入的图标灰度指令时,通过设置混合参数将预先制作的灰 色蒙版图片与图标灰度指令指定的图标混合生成一个纹理,并将该纹理绘制于 九宫格中所述图标灰度指令指定的图标上,使该图标呈现灰度显示。

在本发明实施例中,由于图标高亮或灰色的切换,需要用alpha半透混合 计算,如果采用CPU计算,则需要占用大量CPU,所以此处采用GPU计算多 重纹理混合。

对于现有技术而言,由于九宫格是一个整体,如果需要实现其中一个图标 的灰色显示或高亮的显示,都需要重新绘制整个九宫格,无法高效率的实现, 尤其对于硬件计算能力不是很强大的设备更是无法实现。而在本发明实施例中, 由于九宫格的各个图标都是采用不同的纹理绘制,因而可为每个图标单独混合 高亮蒙版图片或灰色蒙版图片,从而单独对每个图标进行高亮显示或灰色显示, 实现简单,高效。

实施例三:

如图3所示为本发明第三实施例提供的基于实施例一或实施例二所绘制的 九宫格来实现的一种九宫格旋转方法的流程图,为了便于说明,仅示出了与本 发明实施例相关的部分。

在步骤S301中,接收到九宫格旋转指令时,将九宫格转换为3D九宫格。

在本发明实施例中,当接收到用户发出的九宫格旋转指令时,绘制3D九 宫格,将上述实施例一或实施例二绘制的单面的九宫格替换为3D九宫格。其 中,该3D九宫格包括前面和底面两面九宫格,每面九宫格都与实施例一或实 施例二中绘制的单面九宫格相同,各个图标及背景由不同的纹理分别绘制。九 宫格旋转指令可由用户将鼠标停留在九宫格上启动。

其中,将单面的九宫格替换为3D九宫格的过程如下:

加载3D九宫格中各个图标及背景的顶点,随之绘制3D九宫格中每个九宫 格面的背景及各个图标,

在步骤S302中,将投影模式由透视投影改为平行投影。

在本发明实施例中,由于绘制3D九宫格时若采用透视投影的方式,会因 为眼睛的视角不同,看到双面3D九宫格的侧面为空;而如果在两个侧面都绘 制九宫格,则会由于增加顶点数量导致帧率的降低,且从侧面看到的九宫格图 标不美观。因此,将投影模式替换为采用物体大小不会随着Z轴方向发生变化 的平行投影来实现3D九宫格的绘制。

在本发明实施例中,为了保持九宫格的大小及位置不变,则需计算出在透 视投影模式下平行投影的参数,再根据所计算出的平行投影的参数及相应的平 行投影函数将投影模式设置为平行投影。

下面以先设置一个平行投影矩阵,然后通过加载该平行投影矩阵来设置投 影模式为平行投影的方法来说明计算透视投影模式下平行投影参数的过程。

例如:

2Xmax-Xmin00002Ymax-Ymin00001Zback-Zfront00001

根据上述矩阵可知,需要获得的值为Xmax-Xmin、Ymax-Ymin、Zfront及 Zback,其中,Zfront及Zback为常数,Zfront=1.0,Zback=10000.0。

则在透视投影模式下获取Xmax-Xmin及Ymax-Ymin的值的方法如下:

先获取当前九宫格的位置:Position1;获取透视投影视口的宽(w)、高(h) 以及宽高比aspec=w/h;再获取当前相机的空间位置:CameraPostion,相机的 朝向:LookAt,位于相机正上方垂直于视线的矢量:UP,透视投影模式下的视 口的宽为Width,视口的高为Hight。

然后,通过矩阵V=uxuyuzdxvxvyvzdynxnynzdz0001将透视投影模式下的空间坐标向视觉坐 标系转换,即视觉坐标系中的九宫格位置Position2=V*Position1。

其中,n=CameraPostion–LookAt;u=UP×n;v=n×u。(dx,dy,dz)=(-eye *u,-eye*v,-eye*n),eye为眼睛所在的位置。

在将九宫格的位置从透视投影模式下的空间坐标转换到视觉坐标中后,还 需通过视觉坐标系中Z方向值Position.Z及预先设定的视景体近平面距离ZNear 来确定在平行投影模式下视景体视口的宽及视口的高。

则:视景体视口的高ViewPortorth.Hight=ViewPort.Hight*(Position.Z- Znear)/Znear*Radio,其中,调节系数Radio根据实际需求设置,本例取0.00225;

视景体视口的宽ViewPortorth.Width=aspec*ViewPortorth.Hight。

则最终可得:

Xmax-Xmin=ViewPortorth.Width;

Ymax-Ymin=ViewPortorth.Hight。

因此,根据参数Xmax-Xmin及Ymax-Ymin的值就可设置平行投影矩阵, 通过加载所述平行投影矩阵设置投影模式为平行投影。

设置所述3D九宫格的旋转参数,使所述3D九宫格围绕设定的轴旋转。

在步骤S303中,设置3D九宫格的旋转参数,使3D九宫格围绕预设的轴 旋转。

在本发明实施例中,通过在3D九宫格的相对坐标系中设置旋转参数的值, 使3D九宫格围绕设定的轴旋转。如:可通过设置一个旋转参数矩阵,然后将 该旋转矩阵与3D九宫格的相对坐标系相乘使得3D九宫格围绕设定的轴旋转。

在本发明实施例中,通过平行投影的方式实现3D九宫格,不仅实现了3D 的九宫格,九宫格还能围绕预设的轴进行旋转,且避免了采用透视投影方式时 由于眼睛的视角不同,造成看到双面3D九宫格的侧面为空的问题;也避免了 采用透视投影方式时若在两个侧面都绘制九宫格,则会由于增加顶点数量导致 帧率的降低,且侧面看到的九宫格图标不美观的问题。

实施例四:

图4为本发明第四实施例提供的一种九宫格绘制装置结构示意图,为了便 于说明,仅示出了与本发明实施例相关的部份。该装置可以是内置于智能手机、 智能电视机等智能设备中的软件单元、硬件单元或者软硬件相结合的单元,或 者作为独立的挂件集成到这些智能设备或智能设备的应用系统中。其中:

九宫格初始设置单元41,用于加载九宫格各个图标及背景的顶点,并将九 宫格的投影模式设置为透视投影。

九宫格绘制单元42,用于采用不同的纹理分别绘制九宫格的背景及各个图 标。

在本发明实施例中,由于采用了多重纹理混合的方式实现九宫格的绘制, 若九宫格中的图标发生了变化,则只需要替换发生变化的图标,不需要替换整 个九宫格,保证了九宫格的绘制效率。

实施例五:

图5为本发明第五实施例提供的一种优选的九宫格绘制装置结构示意图, 为了便于说明,仅示出了与本发明实施例相关的部份。该装置可以是内置于智 能手机、智能电视机等智能设备中的软件单元、硬件单元或者软硬件相结合的 单元,或者作为独立的挂件集成到这些智能设备或智能设备的应用系统中。其 中:

九宫格初始设置单元41,用于加载九宫格各个图标及背景的顶点,并将九 宫格的投影模式设置为透视投影。

九宫格绘制单元42,用于采用不同的纹理分别绘制九宫格的背景及各个图 标。

高亮设置单元51,用于当接收到图标点亮指令时,将预设的高亮蒙版图片 与图标点亮指令指定的图标混合生成一个纹理,并将该纹理绘制于九宫格中图 标点亮指令指定的图标上。

灰度设置单元52,用于当接收到图标灰度指令时,将预设的灰色蒙版图片 与图标灰度指令指定的图标混合生成一个纹理,并将该纹理绘制于九宫格中图 标灰度指令指定的图标上。

在本发明实施例中,由于九宫格的各个图标都是采用不同的纹理绘制,因 而可为每个图标单独混合高亮蒙版图片或灰色蒙版图片,从而单独对每个图标 进行高亮显示或灰色显示,实现简单,高效。

实施例六:

图6为本发明第六实施例提供的一种基于实施例四或实施例五所绘制的九 宫格的九宫格绘制装置结构示意图,为了便于说明,仅示出了与本发明实施例 相关的部份。该装置可以是内置于智能手机、智能电视机等智能设备中的软件 单元、硬件单元或者软硬件相结合的单元,或者作为独立的挂件集成到这些智 能设备或智能设备的应用系统中。其中:

九宫格转换单元61,用于接收到九宫格旋转指令时,将九宫格转换为3D 九宫格。

在本发明实施例中,3D九宫格包括前面和底面两面九宫格,每面九宫格都 与实施例四或实施例五中绘制的单面九宫格相同,各个图标及背景由不同的纹 理分别绘制。

投影模式转换单元62,用于将投影模式由透视投影改为平行投影。

在本发明实施例中,所述投影模式转换单元62包括两个子单元,其中:

参数计算单元621,用于计算在透视投影模式下平行投影的参数。

平行投影设置单元622,用于根据所述平行投影的参数将投影模式设置为 平行投影。

九宫格旋转单元63,用于设置3D九宫格的旋转参数,使3D九宫格围绕 预设的轴旋转。

在本发明实施例中,通过平行投影的方式实现3D九宫格,不仅实现了3D 的九宫格,九宫格还能围绕预设的轴进行旋转,且避免了采用透视投影方式时 由于眼睛的视角不同,造成看到双面3D九宫格的侧面为空的问题;也避免了 采用透视投影方式时若在两个侧面都绘制九宫格,则会由于增加顶点数量导致 帧率的降低,且侧面看到的九宫格图标不美观的问题。

本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分步骤 是可以通过程序来指令相关的硬件来完成,所述的程序可以在存储于一计算机 可读取存储介质中,所述的存储介质,如ROM/RAM、磁盘、光盘等。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发 明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明 的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号