CN104156144A - 电子文档翻页效果实现方法及装置 - Google Patents

电子文档翻页效果实现方法及装置 Download PDF

Info

Publication number
CN104156144A
CN104156144A CN201310176219.2A CN201310176219A CN104156144A CN 104156144 A CN104156144 A CN 104156144A CN 201310176219 A CN201310176219 A CN 201310176219A CN 104156144 A CN104156144 A CN 104156144A
Authority
CN
China
Prior art keywords
page turning
point
coordinate
current page
turning point
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201310176219.2A
Other languages
English (en)
Other versions
CN104156144B (zh
Inventor
张颖峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201310176219.2A priority Critical patent/CN104156144B/zh
Publication of CN104156144A publication Critical patent/CN104156144A/zh
Application granted granted Critical
Publication of CN104156144B publication Critical patent/CN104156144B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明公开了一种电子文档翻页效果实现方法及装置。所述方法包括:确定所述电子文档的页面边界,检测初始翻页点以及当前翻页点,根据所述初始翻页点与所述当前翻页点确定页面的折边;根据所述初始翻页点以及所述当前翻页点的坐标计算当前翻页角度以及当前翻页长度;构建圆柱体模型以及与所述圆柱体模型相切的另一个平面,使所述圆柱体模型与所述页面的切线与所述折边重合,将所述第三区域对应的页面纹理贴在所述圆柱体模型或者所述另一个平面上;以及检测下一翻页点,以下一翻页点作为当前翻页点重新确定所述页面的折边并且重复执行所述翻页点移动计算步骤以及圆柱卷边计算步骤,直至翻页点消失。本发明提出的电子文档翻页效果实现过程更加简单、容易调整、可扩展性强。

Description

电子文档翻页效果实现方法及装置
技术领域
本发明涉及图形处理技术领域,特别涉及一种电子文档翻页效果实现方法及装置。
背景技术
近年来,随着智能手机、平板电脑、电子书阅读器等终端产品的快速发展,用户对终端应用产品的要求也越来越高。终端应用产品通常借由用户界面与用户实现交互。针对电子文档的翻页操作也是其中一种比较常见的交互,经常在各种列表界面、文本界面中出现,翻页技术也成为终端应用产品中的一个关键技术。
现有的翻页技术包括flash翻页技术、leaves翻页技术、ConeCurl圆锥翻页技术等。其中,flash翻页技术已形成很久,应用也较为广泛,具有斜角翻页效果,但由于没有圆角卷边的三维效果,翻页效果不够逼真。Leaves翻页技术是苹果公司iPhone手机平台中一个开源的翻页实现方案,加上阴影效果后具有较逼真的圆角卷边效果,但是,Leaves翻页技术无法实现斜角卷边效果。ConeCurl圆锥翻页技术也是一种开源的翻页实现方案,具有较为真实的三维翻页效果,能够实现倾斜翻页,也有圆角卷边效果。但是,ConeCurl圆锥翻页技术的实现方法很复杂,灵活性也不够。
发明内容
为了解决现有的斜角卷边翻页技术算法复杂、灵活性不够的问题,本发明实施例提供了一种电子文档翻页效果实现方法及装置。
本发明一个实施例中的电子文档翻页效果实现方法,包括:检测步骤,确定所述电子文档的页面边界,检测初始翻页点以及当前翻页点,根据所述初始翻页点与所述当前翻页点确定页面的折边,所述折边将所述页面划分为第一区域及第二区域,所述第二区域包括所述初始翻页点,所述第二区域相对于所述折边的轴对称区域为第三区域;翻页点移动计算步骤,根据所述初始翻页点以及所述当前翻页点的坐标计算当前翻页角度以及当前翻页长度;圆柱卷边计算步骤,构建圆柱体模型以及与所述圆柱体模型相切的另一个平面,使所述圆柱体模型与所述页面的切线与所述折边重合,将所述第三区域对应的页面纹理贴在所述圆柱体模型或者所述另一个平面上;以及检测下一翻页点,以下一翻页点作为当前翻页点重新确定所述页面的折边并且重复执行所述翻页点移动计算步骤以及圆柱卷边计算步骤,直至翻页点消失。
本发明另一个实施例中的电子文档翻页效果实现方法,包括:检测步骤,确定所述电子文档的页面边界,检测翻页触发点,根据预设的起始翻页角度、预设的起始翻页长度以及所述翻页触发点的位置确定页面折边的起始位置,所述折边将所述页面划分为第一区域及第二区域,所述第二区域相对于所述折边的轴对称区域为第三区域;圆柱卷边计算步骤,构建圆柱体模型以及与所述圆柱体模型相切的另一个平面,使所述圆柱体模型与所述页面的切线与所述折边重合,将所述第三区域对应的页面纹理贴在所述圆柱体模型或者所述另一个平面上;以及动画显示步骤,将贴在所述圆柱体模型上的页面纹理做为当前页面的翻起部分进行显示;以及根据预设的翻页变化长度、预设的起始翻页角度以及当前页面的翻页角度,确定下一帧动画的折边位置,重复所述圆柱卷边计算步骤以及所述动画显示步骤,直至当前翻页角度达到预设的最大翻页角度。
本发明一个实施例中的电子文档翻页效果实现装置,包括:检测模块,用于确定所述电子文档的页面边界,检测初始翻页点以及当前翻页点,根据所述初始翻页点与所述当前翻页点确定页面的折边,所述折边将所述页面划分为第一区域及第二区域,所述第二区域包括所述初始翻页点,所述第二区域相对于所述折边的轴对称区域为第三区域;翻页点移动计算模块,用于根据所述初始翻页点以及所述当前翻页点的坐标计算当前翻页角度以及当前翻页长度;以及圆柱卷边计算模块,用于构建圆柱体模型以及与所述圆柱体模型相切的另一个平面,使所述圆柱体模型与所述页面的切线与所述折边重合,将所述第三区域对应的页面纹理贴在所述圆柱体模型或者所述另一个平面上。
本发明另一个实施例中的电子文档翻页效果实现装置,包括:检测模块,用于确定所述电子文档的页面边界,检测翻页触发点,根据预设的起始翻页角度、预设的起始翻页长度以及所述翻页触发点的位置确定页面折边的起始位置,所述折边将所述页面划分为第一区域及第二区域,所述第二区域相对于所述折边的轴对称区域为第三区域;圆柱卷边计算模块,用于构建圆柱体模型以及与所述圆柱体模型相切的另一个平面,使所述圆柱体模型与所述页面的切线与所述折边重合,将所述第三区域对应的页面纹理贴在所述圆柱体模型或者所述另一个平面上;以及动画显示模块,用于将贴在所述圆柱体模型上的页面纹理做为当前页面的翻起部分进行显示。
相对于现有技术,本发明实施例提出的电子文档翻页效果实现方法,实现过程更加简单、容易调整、可扩展性更强。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明第一实施例提供的电子文档翻页效果实现方法的流程示意图。
图2是本发明第一实施例中的电子文档的页面示意图之一。
图3是在图2的基础上构建圆柱体模型以及与圆柱体模型相切的另一平面后的示意图。
图4是图1中将所述第三区域对应的页面纹理贴在所述圆柱体模型或者所述另一个平面上的步骤的具体流程图。
图5是本发明第一实施例中将所述第三区域对应的页面纹理贴在所述圆柱体模型或者所述另一个平面上后的效果图。
图6是在将所述第三区域对应的页面纹理贴在所述圆柱体模型或者所述另一个平面上之前,增加黑背景的效果示意图。
图7是图5增加黑背景后的效果图。
图8是本发明第二实施例提供的电子文档翻页效果实现方法的流程示意图。
图9是本发明第二实施例中的电子文档的页面示意图。
图10是本发明第三实施例提供的电子文档翻页效果实现方法的流程示意图。
图11是本发明第三实施例中的电子文档的页面示意图。
图12是本发明第四实施例提供的电子文档翻页效果实现方法的流程示意图。
图13是本发明第四实施例中的电子文档的页面示意图。
图14是本发明第五实施例提供的电子文档翻页效果实现装置的结构示意图。
图15是本发明第六实施例提供的电子文档翻页效果实现装置的结构示意图。
图16是本发明第七实施例提供的电子文档翻页效果实现装置的结构示意图。
图17是本发明第八实施例提供的电子文档翻页效果实现装置的结构示意图。
具体实施方式
本发明实施例所提供的方法可应用于包含有触摸显示屏或者触控板的用户终端中,实现电子文档立体翻页效果。该用户终端可以包括智能手机、平板电脑、电子书阅读器、MP3播放器(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group AudioLayer IV,动态影像专家压缩标准音频层面3)播放器、膝上型便携计算机和台式计算机等等。
下面将结合附图对本发明实施方式进行详细的描述,本发明中的电子文档翻页效果实现方法可以采用OpenGL(Open Graphics Library,一种图形应用程序编程接口)技术来实现。
第一实施例
请参考图1,其示出了本发明第一实施例提供的电子文档翻页效果实现方法的流程示意图。本实施例中的电子文档翻页效果实现方法主要用于实现拖动式翻页操作中的电子文档翻页效果。拖动式翻页操作指的是用户通过与用户终端的触控表面持续接触的操作手势与用户终端交互实现翻页的操作方式,用户的操作手势具有一定的滑动轨迹。
请参照图1,于本实施例中,该电子文档翻页效果实现方法,包括:
步骤S11,确定所述电子文档的页面边界,检测初始翻页点以及当前翻页点,根据所述初始翻页点与所述当前翻页点确定页面的折边,所述折边将所述页面划分为第一区域及第二区域,所述第二区域包括所述初始翻页点,所述第二区域相对于所述折边的轴对称区域为第三区域。
本发明实施例中的电子文档可以包括页面(web page)、电子图像(digitalimage)、word文档、PPT文档、email、PDF文档等等。
于步骤S11中,首先确定所述电子文档的页面边界,也就是电子文档在显示面板中的位置,包括页面的页面宽度PAGE_WIDTH和页面高度PAGE_HEIGHT。如果电子文档占据了整个触控表面显示区域的位置,则可以认为触控表面显示区域的边界就是该电子文档的页面边界。
以图2中的电子文档的页面20为例,定义电子文档的页面20的四条外边线为电子文档的边界,四条外边线的交点A、B、C、D为电子文档的页面20的四个顶点,即为可能的起始页面角顶点,模拟的翻页效果从这四个起始页面角顶点中的一个开始。相应的,图2中的四个边界也可以分别用AB、BC、CD、DA来表示。
本发明实施例中的翻页点,指的是在拖动式翻页操作过程中,用户在用户终端(例如手机)的触控表面上进行拖动式翻页操作时所触及的点的位置。
初始翻页点指的是用户在触控表面上触及的第一个点的位置。在电子文档处于阅读模式的情况下,例如用户开启了QQ阅读等应用软件的阅读界面时,用户终端检测到用户的翻页操作,即可记录下初始翻页点的位置,图2中用T0表示初始翻页点。用户终端每隔一段时间,例如50毫秒检测一次用户当前所触及的点的位置,即当前翻页点的位置,并记录下来,图2中用T1表示当前翻页点。
在图2中,由于与初始翻页点T0距离最短的起始页面角顶点为顶点C,因此可以确定起始页面角顶点为C点,也就是右下角翻页。
可以根据所述初始翻页点与所述当前翻页点确定页面的折边,例如于本发明的一具体实施方式中可以以初始翻页点T0与当前翻页点T1的连线的中垂线为页面的折边。在图2中,以初始翻页点T0与当前翻页点T1的连线的中垂线为页面的折边,折边与页面边界BC的交点为E,与页面边界CD的交点为F,相应的,折边可以用线段EF来表示。
在图2中,折边EF将电子文档20的页面划分为第一区域I及第二区域II,其中,第二区域II为包括初始翻页点T0的区域,第一区域I与第二区域II相互没有重叠,且第一区域I与第二区域II拼接在一起即为整个页面。另外,第二区域II相对于折边EF的轴对称区域为第三区域III,也就是第二区域II与第三区域III是相互轴对称的,且对称轴为折边EF。在未进行三维效果(卷边)处理的情况下,第三区域III就是页面的第一区域I沿折边EF翻页后所在的区域,图2中用C’表示页面的第一区域I沿折边EF翻页后、页面顶点C的位置。
步骤S12:根据所述初始翻页点以及所述当前翻页点的坐标计算当前翻页角度以及当前翻页长度。
所述当前翻页角度为折边与所述电子文档其中一条边界之间的夹角,该边界优选的为包含有起始页面角顶点的边界。例如在图2中,当前翻页角度为折边EF与边界CD的夹角,用α表示。
所述当前翻页长度为折边与该边界上的交点与该边界的一个顶点之间的距离,该边界与上述定义当前翻页角度的边界是同一个边界。例如在图2中,当前翻页长度可以是折边EF与边界CD的交点F与顶点C之间的距离,也就是FC的长度。
根据初始翻页点以及所述当前翻页点的坐标以及在步骤S11中所检测到的页面边界,包括页面宽度PAGE_WIDTH和页面高度PAGE_HEIGHT等信息结合解析几何中的相关知识就可以获得当前翻页角度α以及当前翻页的长度FC。
步骤S13:构建圆柱体模型以及与所述圆柱体模型相切的另一个平面,使所述圆柱体模型与所述页面的切线与所述折边重合,将所述第三区域对应的页面纹理贴在所述圆柱体模型或者所述另一个平面上。
根据上述翻页点移动计算步骤S12计算得出的前翻页角度以及当前翻页长度后,可以实现随着用户的手指在触控表面拖动页面的动作得到手指移动到相应位置时的二维翻页效果。执行步骤S13可以进一步实现斜圆柱卷边的翻页效果。在本发明实施例中,主要实现的是页面好像绕着一个斜放着的圆柱体模型进行卷边的翻页效果,也就是要将第三区域对应的页面纹理贴在一个斜放着的圆柱体模型上。
请参考图3,在图2的基础上,定义平行于边界CD并且经过初始翻页点T0的直线与折边EF的交点H为第一中心点,可以以第一中心点为原点、边界CD所在的方向为X轴的延伸方向、与边界CD相邻的边界DA或BC所在的方向为Y轴的延伸方向建立第一直角坐标系。
在该第一直角坐标系上构建圆柱体模型21以及与圆柱体模型相切的另一个平面22,并且使所述圆柱体模型21与所述页面的切线与所述折边EF重合。优选的,平面22平行于页面20。
然后,将所述第三区域对应的页面纹理贴在所述圆柱体模型或者所述另一个平面上。具体的,在本发明的一种具体实施方式中,如图4所示,将所述第三区域对应的页面纹理贴在所述圆柱体模型或者所述另一个平面上的步骤,可以包括:
步骤S131:根据所述第三区域对应的页面纹理顶点在第一直角坐标系内的坐标,计算在所述第一直角坐标系旋转为第二直角坐标系后各纹理顶点旋转后的坐标,其中,所述折边在所述第二直角坐标系中的位置相对于所述折边在所述第一直角坐标系中的位置旋转了(90-α)度,其中α表示当前翻页角度。
于步骤S131中,第一直角坐标系以第一中心点H为旋转点、绕Z轴顺时针旋转(90-α)度后,变为第二直角坐标系,其中,第二直角坐标系的原点仍然为第一中心点H,第二直角坐标系与所述第一直角坐标系中的X轴对应的轴为X’轴,第二直角坐标系与所述第一直角坐标系中的Y轴对应的轴为Y’轴,第二直角坐标系与所述第一直角坐标系中的Z轴对应的轴为Z’轴(与Z轴重合)。由于在第一直角坐标系中,圆柱体模型21与所述页面的切线与所述折边EF重合,也就是说,圆柱体模型与边界CD的夹角为当前翻页角度α,又由于第二直角坐标系相对于第一直角坐标系绕H点顺时针旋转了(90-α)度,因此,圆柱体模型21在第二直角坐标系中与Y’轴是重合的,可以说在第二直角坐标系中圆柱体模型21被“移正”了。
第三区域对应的页面纹理,指的是第三区域也就是当前页面的翻起部分所对应的纹理(包括颜色、图案),也就是图片。假设将该图片切分成多个n*m个小方块图,每个方块图有4个顶点,这4个顶点就是纹理顶点;假设将该图片切分为多个三角形块图,每个三角形块图有3个顶点,这3个顶点就是纹理顶点。可以理解的是,切分的块图面积越小,个数越多(纹理顶点也越多),贴在圆柱体模型上的效果就越逼真,但是,纹理如何切分以及切分为多少个块图都可以根据实际需要进行选择,本发明具体实施方式并不以此为限。
根据所述第三区域对应的页面纹理顶点在第一直角坐标系内的坐标以及三维旋转公式可以计算出各纹理顶点旋转后的坐标。其中,三维旋转公式可参考下式:
x ′ ′ = x ′ cos θ - y ′ sin θ y ′ ′ = x ′ sin θ + y ′ cos θ - - - ( 1 )
其中,x’表示x坐标在第二直角坐标系与第一直角坐标系中的差值、y’表示y坐标在第二直角坐标系与第一直角坐标系中的差值、x"表示旋转后的x坐标值、y"表示旋转后的y坐标值、θ表示第二直角坐标系相对于第一直角坐标系旋转的角度。
假设vi.x为各纹理顶点在第一直角坐标系中的x坐标,vi.y为各纹理顶点在第一直角坐标系中的y坐标,start.x表示各纹理顶点在第二直角坐标系中的x坐标,start.y表示各纹理顶点在第二直角坐标系中的y坐标,new.x为旋转后各纹理顶点的坐标,new.y为旋转后各纹理顶点的坐标。可以得到:
new.x=(vi.x-start.x)*cos(90-α)-(vi.y-start.y)*sin(90-α);    (2)
new.y=(vi.x-start.x)*sin(90-α)+(vi.y-start.y)*cos(90-α)。    (3)
步骤S132:根据各纹理顶点旋转后的坐标,计算将所述各纹理顶点映射在所述圆柱体模型或者与所述圆柱体模型相切的另一个平面上之后所述各纹理顶点的坐标。
与所述圆柱体模型相切的另一个平面可以是平行于页面20的平面,在图3中,用标号22来标识。
具体的,首先判断所述各纹理顶点在旋转后的x坐标new.x是否小于所述圆柱体模型的圆周长的一半half_circle,其中,
half_circle=π*R,    (4)
公式(4)中R为圆柱体模型的半径。如果所述纹理顶点在旋转后的x坐标new.x小于所述圆柱体模型的圆周长的一半half_circle,则根据所述纹理顶点旋转后的x坐标new.x与所述圆柱体模型的圆周长的一半half_circle的比值,计算所述纹理顶点坐标映射于所述圆柱体模型后的扭曲角度β,
β=(new.x/half_circle)*180。    (5)
接着,根据所述扭曲角度β计算所述纹理顶点坐标映射在所述圆柱体模型后的坐标(用x移正、y移正、z移正表示):
x移正=start.x+R*sin(β),    (6)
z移正=R-R*cos(β),    (7)
y移正=new.y。    (8)
如果所述纹理顶点在旋转后的x坐标new.x大于所述圆柱体模型的圆周长的一半half_circle,所述纹理顶点坐标映射在与所述圆柱体模型21相切的另一平面22后的坐标:
x移正=start.x-(new.x-half_circle),    (9)
z移正=2*R,    (10)
y移正=new.y。    (11)
从公式(9)至(11)可以看出,当纹理顶点在旋转后的x坐标的new.x大于所述圆柱体模型的圆周长的一半half_circle时,也就是起始页面角顶点C已经翻过了180度(对应于圆柱体模型的半圆长度的部分)时,页面已反向向左平移,不再继续卷页,以免卷入圆柱体模型21内,从而可以达到与真实的翻页动作一致的效果。
步骤S133:根据所述各纹理顶点映射在所述圆柱体模型或者与所述圆柱体模型相切的另一个平面上之后的坐标,计算在所述第二直角坐标系旋转为所述第一直角坐标系后,各纹理顶点在所述第一直角坐标系的坐标。
再将第二直角坐标系以第一中心点H为旋转点、绕Z’轴逆时针旋转为所述第一直角坐标系,再次将圆柱体模型“倾斜”,根据所述各纹理顶点映射在所述圆柱体模型上后的坐标(用new.x倾斜、new.y倾斜、new.z倾斜表示),计算各纹理顶点在第一直角坐标系的坐标。
new.x倾斜=(x移正-start.x)*cos(270+α)-(y移正-start.y)*sin(270+α);    (12)
new.y倾斜=(x移正-start.x)*sin(270+α)-(y移正-start.y)*cos(270+α);    (13)
new.z倾斜=R-R*cos(β),或者new.z倾斜=2*R。    (14)
步骤S134:根据映射在所述圆柱体模型或与所述圆柱体模型相切的平面上的各纹理顶点在所述第一直角坐标系的坐标,将所述第三区域对应的页面纹理贴在所述圆柱体模型或者所述另一个平面上。
具体的,对应于页面纹理被切分成的多个块图,所述圆柱体模型的表面也被切分为多个块图。假设页面纹理被切分成n个三角形块图,所述圆柱体模型的表面也对应的被切分为n个三角形块图,每个小三角形块图会有三个顶点,称为矩阵顶点,依次把每个纹理顶点对应每个矩阵顶点,就可以完成openGL贴图。根据上述步骤将所述第三区域对应的页面纹理贴在所述圆柱体模型或者所述另一个平面上的效果可以参考图5。
步骤S14:检测下一翻页点,以下一翻页点作为当前翻页点重新确定所述页面的折边并且重复执行所述翻页点移动计算步骤以及圆柱卷边计算步骤,直至翻页点消失。
于步骤S14中,用户终端每隔预定的时间,如50毫秒检测一次翻页点,判断翻页点是否消失,即判断用户是否停止触及触控表面。若用户继续触及触控表面,则翻页点没有消失,以下一翻页点作为当前翻页点重新确定页面的折边后,页面的第一区域以及第二区域也根据所重新确定的折边重新划分,相应的,第三区域也发生改变。以新的折边以及第三区域为基础重复执行所述翻页点移动计算步骤以及圆柱卷边计算步骤。如果用户停止触及触控表面,则翻页点消失,停止执行所述翻页点移动计算步骤以及圆柱卷边计算步骤。进一步的,可以以动画的形式完成当前页面剩余部分的翻页。
另外,可选的,所述翻页点移动计算步骤与所述圆柱卷边计算步骤之间,还可以包括步骤S15:增加黑背景以形成阴影,所述黑背景包括覆盖所述折边的渐进色条带以及位于所述第三区域的渐进色块,覆盖所述折边的渐进色条带的颜色由所述折边开始向两侧由深变浅,位于所述第三区域的渐进色块的颜色由所述第三区域的中心开始向周边由深变浅。
请参照图6,在图2的基础上,在折边EF上覆盖一个渐进色条带23,渐进色条带23的颜色由折边EF开始向两侧由深变浅,另外,在第三区域III增加一个渐进色块24,渐进色块24的颜色由所述第三区域III的中心开始向周边由深变浅。这两部分的阴影正好形成在当前页面未翻起部分的上面、当前页面翻起部分的下面,与步骤S13与步骤S14结合后,就可以得到较为完整、逼真的圆柱卷边翻页效果,如图7所示。
相对于现有技术,本发明实施例提出的电子文档翻页效果实现方法,基于OpenGL技术,将复杂的斜角卷边翻页效果的实现巧妙的分解为翻页点移动计算步骤、圆柱卷边计算步骤等步骤,使得整个实现过程更加简单、容易调整,可扩展性强。
第二实施例
请参考图8,其示出了本发明第二实施例提供的电子文档翻页效果实现方法的流程示意图。
于本实施例中,该电子文档翻页效果实现方法,包括:
步骤S21,检测步骤,确定所述电子文档的页面边界,检测初始翻页点以及当前翻页点,以所述初始翻页点与所述当前翻页点的连线的中垂线为页面的折边,所述折边将所述页面划分为第一区域及第二区域,所述第二区域包括所述初始翻页点,所述第二区域相对于所述折边的轴对称区域为第三区域。
步骤S22:翻页点移动计算步骤,根据所述初始翻页点以及所述当前翻页点的坐标计算当前翻页角度以及当前翻页长度。
步骤S23:圆柱卷边计算步骤,构建圆柱体模型以及与所述圆柱体模型相切的另一个平面,使所述圆柱体模型与所述页面的切线与所述折边重合,将所述第三区域对应的页面纹理贴在所述圆柱体模型或者所述另一个平面上。
步骤S24:检测下一翻页点,以下一翻页点作为当前翻页点重新确定所述页面的折边并且重复执行所述翻页点移动计算步骤以及圆柱卷边计算步骤,直至翻页点消失。
步骤S21、S23、S24可以参考第一实施例中的相关步骤,这里不再赘述。
于本实施例中,将详细介绍步骤S22的一种具体实施方式。请参考图9,图9以图2为基础,字母表示含义也与图2相同,因此这里不再赘述。
可以定义边界CD所在方向为第一方向、与边界CD垂直的方向为第二方向。例如,在图9中,具体的,可以定义边界CD为X轴、边界为DA为Y轴,顶点D为坐标原点。可以理解的是,上述坐标系的定义只是一个具体示例,本发明的具体实施方式并不以此为限。
请参考图8,于本实施例中,步骤S22可以包括
步骤S221a:根据所述初始翻页点以及所述当前翻页点的坐标,分别计算所述初始翻页点与所述当前翻页点在第一方向以及第二方向上的距离;
步骤S222a:计算所述初始翻页点与所述当前翻页点之间的距离;
步骤S223a:根据所述初始翻页点与所述当前翻页点在第一方向上的距离与所述初始翻页点与所述当前翻页点之间的距离的比值,获得所述当前翻页角度。
下面将结合图9具体介绍上述步骤S221a至S223a的实现过程。
假设用户使用手指直接在触控表面拖动页面进行翻页操作,初始翻页点T0与当前翻页点T1之间的连线T0T1可以定义为拖动方向,在拖动的过程中,折边EF始终保持与拖动方向T0T1垂直。
做一条经过初始翻页点T0并平行于边界CD的直线,该直线与边界BC的交点为G,与折边EF的交点为H,连接T1与H。做一条经过当前翻页点T1并平行于边界BC的直线,该直线与HT0线的交点为I。
因为,∠T0T1I+∠T1T0I=90°,并且,∠EHT0+∠T1T0I=90°,所以∠T0T1I=∠EHT0。而又因为∠EHT0=∠EFC=α,因此,计算出∠T0T1I也就得到了当前翻页角度α。
∠T0T1I可以通过初始翻页点T0与当前翻页点T1的坐标计算得到,执行步骤S221a:计算所述初始翻页点T0与所述当前翻页点T1在第一方向(X轴)以及第二方向(Y轴)上的距离,其中,初始翻页点T0与所述当前翻页点T1在第一方向(X轴)上的距离用xDistance表示,初始翻页点T0与所述当前翻页点T1在第二方向(Y轴)上的距离用yDistance表示,
xDistance=T0(x)–T1(x),    (15)
yDistance=T0(y)–T1(y),    (16)
其中,T0(x)、T0(y)分别表示初始翻页点T0的x,y坐标值,用T1(x)、T1(y)分别表示当前翻页点T1的x,y坐标值。
执行步骤S222a:计算初始翻页点T0与当前翻页点T1之间的直线距离|T0T1|。
| T 0 T 1 | = ( xDis tan ce ) 2 + ( yDis tan ce ) 2 , - - - ( 17 )
步骤S223a:根据初始翻页点T0与当前翻页点T1在第一方向(X轴)上的距离xDistance与初始翻页点T0与当前翻页点T1之间的距离|T0T1|的比值,获得所述当前翻页角度α。由几何关系可知:
sin ∠ T 0 T 1 I = | T 1 I | / | T 0 T 1 | = xDis tan ce / ( xDis tan ce ) 2 + ( yDis tan ce ) 2 , - - - ( 18 )
因此,得到
∠ α = ∠ T 0 T 1 I = arcsin ( xDis tan ce / ( xDis tan ce ) 2 + ( yDis tan ce ) 2 ) . - - - ( 19 )
也就是说,根据所述初始翻页点T0与所述当前翻页点T1在第一方向上的距离xDistance与所述初始翻页点T0与所述当前翻页点T1之间的距离的比值,就可以获得所述当前翻页角度α。
如图8所示,于本实施例中,根据所述初始翻页点以及所述当前翻页点的坐标计算当前翻页长度的步骤,可以包括:
步骤S221b:根据所述初始翻页点在所述第一方向的坐标以及该边界的长度,计算所述当前翻页长度的第一部分;
步骤S222b:根据所述当前翻页角度、所述初始翻页点以及当前翻页点在所述第一方向的坐标计算所述当前翻页长度的第二部分;
步骤S223b:根据所述当前翻页角度、所述初始翻页点在所述第二方向的坐标计算所述当前翻页长度的第三部分;以及
步骤S224b:将所述第一部分、第二部分以及第三部分的值相加,获得所述当前翻页长度。
下面将结合图9具体介绍上述步骤S221b至S224b的实现过程。
在图9中,当前翻页长度即为折边EF的端点F至顶点C之间的直线距离|FC|。做一条经过初始翻页点T0并平行于边界BC的直线,该直线与边界CD的交点为J。做一条经过H点并平行于边界BC的直线,该直线与边界CD的交点为K。当前翻页长度FC可以认为是由FK、KJ、JC三部分所组成的,也就是|FC|=|FK|+|KJ|+|JC|。
首先,执行步骤S221b:根据初始翻页点T0在所述第一方向(X轴)的坐标T0(x)以及边界CD的长度,计算当前翻页长度|FC|的第一部分的长度|JC|。其中,边界CD的长度,也就是电子文档20的页面宽度PAGE_WIDTH,因此,
|JC|=PAGE_WIDTH-T0(x)。    (20)
然后,执行步骤S222b:根据当前翻页角度α、初始翻页点T0在所述第一方向(X轴)的坐标T0(x)、当前翻页点T1在所述第一方向(X轴)的坐标T1(x)、计算当前翻页长度|FC|的第二部分的长度|KJ|。由于|KJ|=|HT0|,因此,计算出|HT0|即可得到|KJ|。
由几何关系可知,
T1H=T0H,    (21)
∠T1HE=∠T0HE=∠α,    (22)
∠T1HI+∠T1HE+∠T0HE=180°,    (23)
可以得到:
∠T1HI=180°–2*∠α。    (24)
通过三角函数定义,可以得到
cos∠T1HI=HI/T1H,    (25)
HI=cos(∠T1HI)*T1H。    (26)
由于T1H=T0H,所以
HI=cos(∠T1HI)*T0H=cos(∠T1HI)*|KJ|。    (27)
另外,由于当前翻页点T1的x坐标值与I点的x坐标值是相同的,也就是T1(x)=I(x)。所以,边界CD的长度,也就是电子文档20的页面宽度PAGE_WIDTH=T1(x)+|HI|+|HT0|+|T0G|,而|T0G|=|JC|。因此,
|KJ|=|HT0|=PAGE_WIDTH-T1(x)-|JC|-|HI|。    (28)
将公式(27)代入公式(28),可以得到
|KJ|=|HT0|=PAGE_WIDTH-T1(x)-(PAGE_WIDTH-T0(x))-(cos∠T1HI)*|KJ|=T0(x)-T1(x)-cos(∠T1HI)*|KJ|,    (29)
所以,
|KJ|=(T0(x)-T1(x))/(1+cos(∠T1HI)),    (30)
将公式(24)代入公式(30),即可得到:
|KJ|=(T0(x)-T1(x))/(1+cos(180°–2*∠α))。    (31)
根据公式(31)即可计算出|KJ|,也就是根据所述当前翻页角度α、所述初始翻页点以及当前翻页点在所述第一方向的坐标T0(x)、T1(x)可以计算出所述当前翻页长度的第二部分|KJ|。
接着,执行步骤S223b:根据当前翻页角度α、所述初始翻页点在所述第二方向的坐标T0(y)计算所述当前翻页长度的第三部分的长度|FK|。其中,边界BC或DA的长度也就是页面高度PAGE_HEIGHT。
由几何关系可知,HK=T0J,而T0J=T0(y),同时通过三角函数定义,可得到HK/FK=tan(∠α),所以
|FK|=HK/tan(∠α)=T0(y)/tan(∠α)。    (32)
至此,当前翻页长度|FC|的三个部分的长度|FK|、|KJ|、|JC|都已计算出来。最后执行步骤S224b:将这三个部分的长度相加得到当前翻页长度|FC|,得到:
|FC|=PAGE_WIDTH-T0(x)+(T0(x)-T1(x))/(1+cos(180°–2*∠α))+T0(y)/tan(∠α)。    (33)
也就是说,根据页面边界的信息(包括页面宽度)、初始翻页点以及当前翻页点的坐标以及当前翻页角度即可求出当前翻页长度。
相对于现有技术,本发明实施例提出的电子文档翻页效果实现方法,基于OpenGL技术,将复杂的斜角卷边翻页效果的实现巧妙的分解为翻页点移动计算步骤、圆柱卷边计算步骤等步骤,使得整个实现过程更加简单、容易调整,可扩展性强。
第三实施例
请参考图10,其示出了本发明第三实施例提供的电子文档翻页效果实现方法的流程示意图。
于本实施例中,该电子文档翻页效果实现方法,包括:
步骤S31,检测步骤,确定所述电子文档的页面边界,检测初始翻页点以及当前翻页点,根据所述初始翻页点与所述当前翻页点确定所述页面的折边,所述折边将所述页面划分为第一区域及第二区域,所述第二区域包括所述初始翻页点,所述第二区域相对于所述折边的轴对称区域为第三区域。
步骤S32:翻页点移动计算步骤,根据所述初始翻页点以及所述当前翻页点的坐标计算当前翻页角度以及当前翻页长度。
步骤S33:构建圆柱体模型以及与所述圆柱体模型相切的另一个平面,使所述圆柱体模型与所述页面的切线与所述折边重合,将所述第三区域对应的页面纹理贴在所述圆柱体模型或者所述另一个平面上。
步骤S34:检测下一翻页点,以下一翻页点作为当前翻页点重新确定所述页面的折边并且重复执行所述翻页点移动计算步骤以及圆柱卷边计算步骤,直至翻页点消失。
步骤S31、S33、S34可以参考第一实施例中的相关步骤,这里不再赘述。
于本实施例中,将详细介绍步骤S32的另一种具体实施方式。请参考图10,于本实施例中,步骤S32可以包括:
步骤S320a:根据所述初始翻页点的坐标确定所述初始翻页点的边界近似点;
步骤S321a:根据所述初始翻页点的边界近似点以及所述当前翻页点的坐标,分别计算所述边界近似点与所述当前翻页点在第一方向以及第二方向上的距离;
步骤S322a:计算所述边界近似点与所述当前翻页点之间的距离;
步骤S323a:根据所述边界近似点与所述当前翻页点在第一方向上的距离与所述边界近似点与所述当前翻页点之间的距离的比值,获得所述当前翻页角度。
下面将结合图11具体介绍上述步骤S320a至S323a的实现过程。
请参考图11,图11以图2为基础,字母表示含义也与图2基本相同。在图11中,具体的,可以定义边界CD为X轴、边界为DA为Y轴,顶点D为坐标原点。可以理解的是,上述坐标系的定义只是一个具体示例,本发明的具体实施方式并不以此为限。
与图2不同的是,于本实施例中,折边并不是初始翻页点T0与当前翻页点T1的连线的中垂线。
于本实施例的步骤S320a中,首先根据所述初始翻页点的坐标确定所述初始翻页点的边界近似点。具体的,做一条经过所述初始翻页点并平行于该边界的直线,该直线与靠近所述初始翻页点的另一边界的交点为所述初始翻页点的边界近似点,所述边界近似点与所述当前翻页点的连线的中垂线为页面的折边。
以图11为例,做一条经过初始翻页点T0并平行于边界CD的直线,该直线与边界BC的交点为G,于本实施例中,定义该G点为初始翻页点T0的边界近似点,定义该初始翻页点T0的边界近似点G与当前翻页点T1的连线的中垂线为页面20的折边,在图11中,折边与页面边界BC的交点为E’,与页面边界CD的交点为F’,相应的,折边可以用线段E’F’表示。
在图10中,假设当前翻页角度为折边E’F’与边界CD的夹角,用α’表示。当前翻页长度是折边E’F’与边界CD的交点F’与顶点C之间的距离,也就是F’C的长度。
假设用户使用手指直接在触控表面拖动页面进行翻页操作,于本实施例中,边界近似点G与当前翻页点T1之间的连线GT1定义为拖动方向,在拖动的过程中,折边E’F’始终保持与拖动方向GT1垂直。
假设直线T0G与折边E’F’的交点为H’,连接T1与H’。做一条经过当前翻页点T1并平行于边界BC的直线,该直线与H’G线的交点为I’。
因为,∠GT1I’+∠T1GI’=90°,并且,∠E’H’G+∠T1GI’=90°,所以∠GT1I’=∠E’H’G。而又因为∠E’H’G=∠E’F’C=α’,因此,计算出∠GT1I’也就得到了当前翻页角度α’。
∠GT1I’可以通过边界近似点G与当前翻页点T1的坐标计算得到,执行步骤S321a:计算所述边界近似点G与所述当前翻页点T1在第一方向(X轴)以及第二方向(Y轴)上的距离,其中,边界近似点G与所述当前翻页点T1在第一方向(X轴)上的距离用xDistance’表示,边界近似点G与所述当前翻页点T1在第二方向(Y轴)上的距离用yDistance’表示,
xDistance’=G(x)–T1(x),    (34)
yDistance’=G(y)–T1(y),    (35)
其中,G(x)、G(y)分别表示边界近似点G的x,y坐标值,用T1(x)、T1(y)分别表示当前翻页点T1的x,y坐标值。又因为G(x)=PAGE_WIDTH,G(x)=T0(y),所以,
xDistance’=PAGE_WIDTH–T1(x),    (36)
yDistance’=T0(y)–T1(y),    (37)
其中,T0(y)为初始翻页点T0的y坐标值。
执行步骤S322a:计算边界近似点G与当前翻页点T1之间的直线距离|GT1|。
| GT 1 | = ( xDis tan ce ′ ) 2 + ( yDis tan ce ′ ) 2 , - - - ( 38 )
步骤S323a:根据边界近似点G与当前翻页点T1在第一方向(X轴)上的距离xDistance与边界近似点G与当前翻页点T1之间的距离|GT1|的比值,获得所述当前翻页角度α’。由几何关系可知:
sin ∠ CT 1 I , = | T 1 I , | / | GT 1 | xDis tan ce / ( sDis tan ce ′ ) 2 + ( yDis tan ce ′ ) 2 , - - - ( 39 )
因此,得到
∠ α , = ∠ GT 1 I , = arcsin ( xDis tan ce / ( sDis tan ce ′ ) 2 + ( yDis tan ce ′ ) 2 ) . - - - ( 40 )
也就是说,根据所述边界近似点G与所述当前翻页点T1在第一方向上的距离xDistance’与所述边界近似点G与所述当前翻页点T1之间的距离的比值,就可以获得所述当前翻页角度α’。
如图10所示,于本实施例中,根据所述初始翻页点以及所述当前翻页点的坐标计算当前翻页长度的步骤,可以包括:
步骤S321b:根据所述当前翻页角度、所述边界近似点以及当前翻页点在所述第一方向的坐标计算所述当前翻页长度的第一部分;
步骤S322b:根据所述当前翻页角度、所述边界近似点在所述第二方向的坐标计算所述当前翻页长度的第三部分;以及
步骤S323b:将所述第一部分以及第二部分的值相加,获得所述当前翻页长度。
下面将结合图11具体介绍上述步骤S321b至S323b的实现过程。
在图11中,当前翻页长度即为折边E’F’的端点F’至顶点C之间的直线距离|F’C|。做一条经过H’点并平行于边界BC的直线,该直线与边界CD的交点为K’。当前翻页长度F’C可以认为是由F’K’、K’C两部分所组成的,也就是|F’C|=|F’K’|+|K’C|。
首先,执行步骤S321b:根据当前翻页角度α’、边界近似点G在所述第一方向(X轴)的坐标、当前翻页点T1在所述第一方向(X轴)的坐标T1(x)、计算当前翻页长度|F’C|的第一部分的长度|K’C|。由于|K’C|=|H’G|,因此,计算出|H’G|即可得到|K’C|。
由几何关系可知,
T1H’=GH’,    (41)
∠T1H’E’=∠GH’E’=∠α’,    (42)
∠T1H’I’+∠T1H’E’+∠GH’E’=180°,    (43)
可以得到:
∠T1H’I’=180°–2*∠α’。    (44)
通过三角函数定义,可以得到
cos∠T1H’I’=H’I’/T1H’,    (45)
H’I’=cos(∠T1H’I’)*T1H’。    (46)
由于T1H’=GH’,所以
H’I’=cos(∠T1H’I’)*GH’=cos(∠T1H’I’)*|K’C|。    (47)
另外,由于当前翻页点T1的x坐标值与I’点的x坐标值是相同的,也就是T1(x)=I’(x)。所以,边界CD的长度,也就是电子文档20的页面宽度PAGE_WIDTH=T1(x)+|H’I’|+|H’G|,因此,
|K’C|=|H’G|=PAGE_WIDTH-T1(x)-|H’I’|。    (48)
将公式(47)代入公式(48),可以得到
|K’C|=|H’G|=PAGE_WIDTH-T1(x)-cos(∠T1H’I’)*|K’C|,    (49)
所以,
|K’C|=(PAGE_WIDTH-T1(x))/(1+cos(∠T1H’I’)),    (50)
将公式(44)代入公式(50),即可得到:
|K’C|=(PAGE_WIDTH-T1(x))/(1+cos(180°–2*∠α’))。    (51)
根据公式(51)即可计算出|K’C|,也就是根据所述当前翻页角度α’、边界近似点G在所述第一方向(X轴)的坐标(PAGE_WIDTH)、所述当前翻页点在所述第一方向的坐标T1(x)可以计算出所述当前翻页长度的第一部分|K’C|。
接着,执行步骤S322b:根据当前翻页角度α’、所述边界近似点G在所述第二方向的坐标G(y)计算所述当前翻页长度的第二部分的长度|F’K’|。
由几何关系可知,H’K’=GC,而GC=G(y)=T0(y),同时通过三角函数定义,可得到H’K’/F’K’=tan(∠α’),所以
|F’K’|=H’K’/tan(∠α’)=T0(y)/tan(∠α’)。    (52)
至此,当前翻页长度|F’C|的两个部分的长度|F’K’|、|K’C|都已计算出来。最后执行步骤S323b:将这两个部分的长度相加得到当前翻页长度|F’C|,得到:
|F’C|=(PAGE_WIDTH-T1(x))/(1+cos(180°–2*∠α’))+T0(y)/tan(∠α’)。(53)
也就是说,根据页面边界的信息(包括页面宽度)、边界近似点以及当前翻页点的坐标以及当前翻页角度即可求出当前翻页长度。
需要说明的是,上述实施例均以图2中的右下角翻页为例进行了具体说明,可以理解的是,根据用户所触及的初始翻页点的位置和当前翻页点的位置在Y轴的差值的正负可以确认是右上角翻页还是右下角翻页,如果是右上角翻页,则调整翻页角度的方向即可,右上角翻页的实现方法也可以采用上述方法,这里不再赘述。
相对于现有技术,本发明实施例提出的电子文档翻页效果实现方法,基于OpenGL技术,将复杂的斜角卷边翻页效果的实现巧妙的分解为翻页点移动计算步骤、圆柱卷边计算步骤等步骤,使得整个实现过程更加简单、容易调整,可扩展性强。
第四实施例
请参考图12,其示出了本发明第四实施例提供的电子文档翻页效果实现方法的流程示意图。本实施例中的电子文档翻页效果实现方法主要用于实现触碰式翻页操作中的电子文档翻页效果。触碰式翻页操作指的是用户通过点击或触摸用户终端触控表面的方式与用户终端交互实现翻页的操作方式,在这种操作方式中,用户点击或触摸的只是触控表面的一个点(本发明实施例中称为翻页触发点),在用户点击或触摸触控表面后,不需要进行其他动作,电子文档会以动画的方式自动进行翻页。
请参照图12,于本实施例中,该电子文档翻页效果实现方法,包括:
步骤S41:检测步骤,确定所述电子文档的页面边界,检测翻页触发点,根据预设的起始翻页角度、预设的起始翻页长度以及所述翻页触发点的位置确定页面折边的起始位置,所述折边将所述页面划分为第一区域及第二区域,所述第二区域相对于所述折边的轴对称区域为第三区域。
翻页触发点指的是在进行触碰式翻页操作过程中,用户在用户终端(例如手机)的触碰表面上进行触碰或点击触控表面时所触及的点的位置。在电子文档处于阅读模式的情况下,例如用户开启了QQ阅读等应用软件的阅读界面时,用户终端检测到用户触碰或点击触控表面的某个点,即可将该点的位置作为翻页触发点的位置记录下来。
请参照图13,仍然以电子文档的页面20为例,用AB、BC、CD、DA来表示页面20的四个边界。于本实施例中,首先根据检测到的翻页触发点的位置判断起始页面角顶点,可以设定与翻页触发点距离最短的页面顶点为起始页面角顶点。例如,在图13中,假设,翻页触发点为Tt,与翻页触发点Tt距离最短的页面顶点C即为起始页面角顶点。
接着,根据预设的起始翻页角度startAngle、预设的起始翻页长度以及起始页面角顶点的位置确定页面折边的起始位置。
预设的起始翻页角度startAngle可以为一个锐角,0<startAngle<90度。优选的,起始翻页角度startAngle为45度。
预设的起始翻页长度startL可以根据一次翻页动画的帧数进行设置,假设完成一次翻页动画需要n帧,那每帧翻页的变化长度ΔL满足:
ΔL=PAGE_WIDTH/n,    (54)
因此,预设的起始翻页长度也就是第一帧时翻页的长度startL满足:
startL=PAGE_WIDTH/n,    (55)
在图13中,假设起始翻页角度startAngle为45度,完成一次翻页动画需要10帧,也就是startL=PAGE_WIDTH/10。假设边界CD对于用户来说是页面的底边,由于C为起始页面角顶点,所以可以确定为右下角翻页。然后再根据预设的起始翻页角度45度以及预设的起始翻页长度PAGE_WIDTH/10确定折边的初始位置,图13中用E0表示折边与边界BC的交点,用F0表示折边与边界CD的交点。同样的,折边E0F0将页面20分为第一区域I以及第二区域II,第二区域II相对于所述折边E0F0的轴对称区域为第三区域III。
步骤S42:圆柱卷边计算步骤,构建圆柱体模型以及与所述圆柱体模型相切的另一个平面,使所述圆柱体模型与所述页面的切线与所述折边重合,将所述第三区域对应的页面纹理贴在所述圆柱体模型或者所述另一个平面上。
进一步的,步骤S42可以包括:根据所述第三区域对应的页面纹理顶点在第一直角坐标系内的坐标,计算在所述第一直角坐标系旋转为第二直角坐标系后各纹理顶点旋转后的坐标,其中,所述折边在所述第二直角坐标系中的位置相对于所述折边在所述第一直角坐标系中的位置旋转了(90-α)度,其中α表示当前页面的翻页角度;根据各纹理顶点旋转后的坐标,计算将所述各纹理顶点映射在所述圆柱体模型或者与所述圆柱体模型相切的另一个平面上之后所述各纹理顶点的坐标;根据所述各纹理顶点映射在所述圆柱体模型或者与所述圆柱体模型相切的另一个平面上之后的坐标,计算在所述第二直角坐标系旋转为所述第一直角坐标系后,各纹理顶点在所述第一直角坐标系的坐标;以及根据映射在所述圆柱体模型或与所述圆柱体模型相切的平面上的各纹理顶点在所述第一直角坐标系的坐标,将所述第三区域对应的页面纹理贴在所述圆柱体模型或者所述另一个平面上。
所述第一直角坐标系以第一中心点为原点、页面其中一个边界所在的方向为X轴的延伸方向、与该边界相邻的另一边界所在的方向为Y轴的延伸方向、与页面垂直的方向为Z轴的延伸方向,所述第一中心点为平行于该边界并且经过所述翻页触发点的直线与所述折边的交点。
所述根据各纹理顶点旋转后的坐标,计算将所述各纹理顶点映射在所述圆柱体模型或者与所述圆柱体模型相切的另一个平面上之后所述各纹理顶点的坐标的步骤,可以包括:判断所述各纹理顶点旋转后的x坐标的绝对值是否小于所述圆柱体模型的圆周长的一半;如果是,则根据所述纹理顶点旋转后的x坐标与所述圆柱体模型的圆周长的一半的比值,计算所述纹理顶点坐标映射于所述圆柱体模型后的扭曲角度,根据所述扭曲角度以及所述纹理顶点旋转后的坐标计算映射在所述圆柱体模型后的所述纹理顶点的坐标;否则,根据所述纹理顶点旋转后的坐标计算映射在与所述圆柱体模型相切的平面后各纹理顶点的坐标,所述与所述圆柱体模型相切的平面平行于所述页面。
具体的,可以参照第一实施例中圆柱卷边计算步骤,这里不再赘述。
步骤S43:动画显示步骤,将贴在所述圆柱体模型或者与圆柱体模型相切的另一个平面上的页面纹理作为当前页面的翻起部分进行显示。
每进行一次该步骤,也就是每显示一帧动画,当前页面的翻页长度都在前一帧页面的翻页长度L的基础上增加ΔL。每进行一帧动画显示后的翻页角度α’为:
α’=startAngle+((αmax-startAngle)*((L+ΔL)/PAGE_WIDTH))。    (56)
在当前显示的页面的翻页长度以及翻页角度确定后,将贴在所述圆柱体模型或者与圆柱体模型相切的另一个平面上的页面纹理作为当前页面的翻起部分进行显示。同时显示的还有未被所述翻起部分覆盖的当前页面的其他部分以及由于翻起部分翻起后曝露出来的下一页面的部分区域。
步骤S44:根据预设的翻页变化长度、预设的起始翻页角度以及当前页面的翻页角度,确定下一帧动画的折边位置,重复所述圆柱卷边计算步骤以及所述动画显示步骤,直至当前翻页角度达到预设的最大翻页角度。
进一步的,于本实施例中,所述检测步骤S41与所述圆柱卷边计算步骤S42之间,进一步包括:
步骤S45:增加黑背景以形成阴影,所述黑背景包括覆盖所述折边的渐进色条带以及位于所述第三区域的渐进色块,覆盖所述折边的渐进色条带的颜色由所述折边开始向两侧由深变浅,位于所述第三区域的渐进色块的颜色由所述第三区域的中心开始向周边由深变浅。
进一步的,对于倒翻页的情况,为了使页面未翻页部分到翻页触发点的位置有一个较为平滑的动画效果,避免页面出现“突然”的卷页现象,可以页面的左边执行了一个从0半径圆柱体到0.5半径的圆柱体变形动画过程,然后再根据翻页触发点的位置,继续倾斜卷边到相应位置,这样可以使倒翻页有较为优雅的动画效果。
相对于现有技术,本发明实施例提出的电子文档翻页效果实现方法,实现过程更加简单、容易调整、可扩展性更强。
第五实施例
请参考图14,其示出了本发明第五实施例提供的电子文档翻页效果实现装置的结构示意图。所述电子文档翻页效果实现装置50可以用于实现第一实施例中的方法,包括:
检测模块51,用于确定所述电子文档的页面边界,检测初始翻页点以及当前翻页点,根据所述初始翻页点与所述当前翻页点确定页面的折边,所述折边将所述页面划分为第一区域及第二区域,所述第二区域包括所述初始翻页点,所述第二区域相对于所述折边的轴对称区域为第三区域;翻页点移动计算模块52,用于根据所述初始翻页点以及所述当前翻页点的坐标计算当前翻页角度以及当前翻页长度;以及圆柱卷边计算模块53,用于构建圆柱体模型以及与所述圆柱体模型相切的另一个平面,使所述圆柱体模型与所述页面的切线与所述折边重合,将所述第三区域对应的页面纹理贴在所述圆柱体模型或者所述另一个平面上。
于本实施例中,圆柱卷边计算模块53可以包括:
第一计算单元531,用于根据所述第三区域对应的页面纹理顶点在第一直角坐标系内的坐标,计算在所述第一直角坐标系旋转为第二直角坐标系后各纹理顶点旋转后的坐标,其中,所述折边在所述第二直角坐标系中的位置相对于所述折边在所述第一直角坐标系中的位置旋转了(90-α)度,其中α表示当前翻页角度;
第二计算单元532,用于根据各纹理顶点旋转后的坐标,计算将所述各纹理顶点映射在所述圆柱体模型或者与所述圆柱体模型相切的另一个平面上之后所述各纹理顶点的坐标;
第三计算单元533,用于根据所述各纹理顶点映射在所述圆柱体模型或者与所述圆柱体模型相切的另一个平面上之后的坐标,计算在所述第二直角坐标系旋转为所述第一直角坐标系后,各纹理顶点在所述第一直角坐标系的坐标;以及
贴纹理单元534,用于根据映射在所述圆柱体模型或与所述圆柱体模型相切的平面上的各纹理顶点在所述第一直角坐标系的坐标,将所述第三区域对应的页面纹理贴在所述圆柱体模型或者所述另一个平面上。
进一步的,所述第一直角坐标系以第一中心点为原点、页面其中一个边界所在的方向为X轴的延伸方向、与该边界相邻的另一边界所在的方向为Y轴的延伸方向、与页面垂直的方向为Z轴的延伸方向,所述第一中心点为平行于该边界并且经过所述初始翻页点的直线与所述折边的交点。
进一步的,所述第二计算单元532可以包括:判断子单元5321、第一计算子单元5322以及第二计算子单元5323。
所述判断子单元5321,用于判断所述各纹理顶点旋转后的x坐标的绝对值是否小于所述圆柱体模型的圆周长的一半;如果是,则所述第一计算子单元5322根据各纹理顶点旋转后的x坐标与所述圆柱体模型的圆周长的一半的比值,计算所述纹理顶点坐标映射于所述圆柱体模型后的扭曲角度,根据所述扭曲角度以及所述纹理顶点旋转后的坐标计算映射在所述圆柱体模型后的所述纹理顶点的坐标;否则,所述第二计算子单元5323根据所述纹理顶点旋转后的坐标计算映射在与所述圆柱体模型相切的平面后各纹理顶点的坐标,所述与所述圆柱体模型相切的平面平行于所述页面。
可选的,所述装置50还可以包括阴影模块54,用于增加黑背景以形成阴影,所述黑背景包括覆盖所述折边的渐进色条带以及位于所述第三区域的渐进色块,覆盖所述折边的渐进色条带的颜色由所述折边开始向两侧由深变浅,位于所述第三区域的渐进色块的颜色由所述第三区域的中心开始向周边由深变浅。
本实施例中各功能模块实现各自功能的具体过程,请参见上述图1至图7所示实施例中描述的具体内容,此处不再赘述。
相对于现有技术,本发明实施例提出的电子文档翻页效果实现装置,实现过程更加简单、容易调整、可扩展性更强。
第六实施例
请参考图15,其示出了本发明第六实施例提供的电子文档翻页效果实现装置的结构示意图。所述电子文档翻页效果实现装置60可以用于实现第二实施例中的方法,包括:检测模块61,用于确定所述电子文档的页面边界,检测初始翻页点以及当前翻页点,根据所述初始翻页点与所述当前翻页点确定页面的折边,所述折边将所述页面划分为第一区域及第二区域,所述第二区域包括所述初始翻页点,所述第二区域相对于所述折边的轴对称区域为第三区域;翻页点移动计算模块62,用于根据所述初始翻页点以及所述当前翻页点的坐标计算当前翻页角度以及当前翻页长度;以及圆柱卷边计算模块63,用于构建圆柱体模型以及与所述圆柱体模型相切的另一个平面,使所述圆柱体模型与所述页面的切线与所述折边重合,将所述第三区域对应的页面纹理贴在所述圆柱体模型或者所述另一个平面上。
于本实施例中,所述当前翻页角度为所述折边与所述电子文档其中一条边界之间的夹角,当前翻页长度为所述折边与该边界上的交点与该边界的一个顶点之间的距离,以该边界所在方向为第一方向、与该边界垂直的方向为第二方向。
于本实施例中,以所述初始翻页点与所述当前翻页点的连线的中垂线为页面的折边。
于本实施例中,所述翻页点移动计算模块62包括第一当前翻页角度计算单元621与第一当前翻页长度计算单元622。
所述第一当前翻页角度计算单元621用于:根据所述初始翻页点以及所述当前翻页点的坐标,分别计算所述初始翻页点与所述当前翻页点在第一方向以及第二方向上的距离;计算所述初始翻页点与所述当前翻页点之间的距离;以及根据所述初始翻页点与所述当前翻页点在第一方向上的距离与所述初始翻页点与所述当前翻页点之间的距离的比值,获得所述当前翻页角度。
第一当前翻页长度计算单元622用于:根据所述初始翻页点在所述第一方向的坐标以及该边界的长度,计算所述当前翻页长度的第一部分;根据所述当前翻页角度、所述初始翻页点以及当前翻页点在所述第一方向的坐标计算所述当前翻页长度的第二部分;根据所述当前翻页角度、所述初始翻页点在所述第二方向的坐标计算所述当前翻页长度的第三部分;以及将所述第一部分、第二部分以及第三部分的值相加,获得所述当前翻页长度。
本实施例中各功能模块实现各自功能的具体过程,请参见上述图8至图9所示实施例中描述的具体内容,此处不再赘述。
相对于现有技术,本发明实施例提出的电子文档翻页效果实现装置,实现过程更加简单、容易调整、可扩展性更强。
第七实施例
请参考图16,其示出了本发明第七实施例提供的电子文档翻页效果实现装置的结构示意图。所述电子文档翻页效果实现装置70可以用于实现第三实施例中的方法,包括:检测模块71,用于确定所述电子文档的页面边界,检测初始翻页点以及当前翻页点,根据所述初始翻页点与所述当前翻页点确定页面的折边,所述折边将所述页面划分为第一区域及第二区域,所述第二区域包括所述初始翻页点,所述第二区域相对于所述折边的轴对称区域为第三区域;翻页点移动计算模块72,用于根据所述初始翻页点以及所述当前翻页点的坐标计算当前翻页角度以及当前翻页长度;以及圆柱卷边计算模块73,用于构建圆柱体模型以及与所述圆柱体模型相切的另一个平面,使所述圆柱体模型与所述页面的切线与所述折边重合,将所述第三区域对应的页面纹理贴在所述圆柱体模型或者所述另一个平面上。
于本实施例中,所述翻页点移动计算模块72包括第二当前翻页角度计算单元721以及第二当前翻页长度计算单元722。
所述第二当前翻页角度计算单元721用于:根据所述初始翻页点的坐标确定所述初始翻页点的边界近似点;根据所述初始翻页点的边界近似点以及所述当前翻页点的坐标,分别计算所述边界近似点与所述当前翻页点在第一方向以及第二方向上的距离;计算所述边界近似点与所述当前翻页点之间的距离;以及根据所述边界近似点与所述当前翻页点在第一方向上的距离与所述边界近似点与所述当前翻页点之间的距离的比值,获得所述当前翻页角度。
所述第二当前翻页长度计算单元722用于:根据所述当前翻页角度、所述边界近似点以及当前翻页点在所述第一方向的坐标计算所述当前翻页长度的第一部分;根据所述当前翻页角度、所述边界近似点在所述第二方向的坐标计算所述当前翻页长度的第二部分;以及将所述第一部分以及第二部分的值相加,获得所述当前翻页长度。
本实施例中各功能模块实现各自功能的具体过程,请参见上述图10至图11所示实施例中描述的具体内容,此处不再赘述。
相对于现有技术,本发明实施例提出的电子文档翻页效果实现装置,实现过程更加简单、容易调整、可扩展性更强。
第八实施例
请参考图17,其示出了本发明第八实施例提供的电子文档翻页效果实现装置的结构示意图。所述电子文档翻页效果实现装置80可以用于实现第四实施例中的方法,包括:
检测模块81,用于确定所述电子文档的页面边界,检测翻页触发点,根据预设的起始翻页角度、预设的起始翻页长度以及所述翻页触发点的位置确定页面折边的起始位置,所述折边将所述页面划分为第一区域及第二区域,所述第二区域相对于所述折边的轴对称区域为第三区域;
圆柱卷边计算模块82,用于构建圆柱体模型以及与所述圆柱体模型相切的另一个平面,使所述圆柱体模型与所述页面的切线与所述折边重合,将所述第三区域对应的页面纹理贴在所述圆柱体模型或者所述另一个平面上;以及
动画显示模块83,用于将贴在所述圆柱体模型上的页面纹理做为当前页面的翻起部分进行显示。
于本实施例中,所述圆柱卷边计算模块82,包括:第一计算单元821,用于根据所述第三区域对应的页面纹理顶点在第一直角坐标系内的坐标,计算在所述第一直角坐标系旋转为第二直角坐标系后各纹理顶点旋转后的坐标,其中,所述折边在所述第二直角坐标系中的位置相对于所述折边在所述第一直角坐标系中的位置旋转了(90-α)度,其中α表示当前页面的翻页角度;第二计算单元822,用于根据各纹理顶点旋转后的坐标,计算将所述各纹理顶点映射在所述圆柱体模型或者与所述圆柱体模型相切的另一个平面上之后所述各纹理顶点的坐标;第三计算单元823,用于根据所述各纹理顶点映射在所述圆柱体模型或者与所述圆柱体模型相切的另一个平面上之后的坐标,计算在所述第二直角坐标系旋转为所述第一直角坐标系后,各纹理顶点在所述第一直角坐标系的坐标;以及贴纹理单元824,用于根据映射在所述圆柱体模型或与所述圆柱体模型相切的平面上的各纹理顶点在所述第一直角坐标系的坐标,将所述第三区域对应的页面纹理贴在所述圆柱体模型或者所述另一个平面上。
进一步的,所述第一直角坐标系以第一中心点为原点、页面其中一个边界所在的方向为X轴的延伸方向、与该边界相邻的另一边界所在的方向为Y轴的延伸方向、与页面垂直的方向为Z轴的延伸方向,所述第一中心点为平行于该边界并且经过所述翻页触发点的直线与所述折边的交点。
进一步的,所述第二计算单元822,包括:判断子单元8221、第一计算子单元8222以及第二计算子单元8223。
所述判断子单元8221,用于判断所述各纹理顶点旋转后的x坐标的绝对值是否小于所述圆柱体模型的圆周长的一半;如果是,则所述第一计算子单元8222根据各纹理顶点旋转后的x坐标与所述圆柱体模型的圆周长的一半的比值,计算所述纹理顶点坐标映射于所述圆柱体模型后的扭曲角度,根据所述扭曲角度以及所述纹理顶点旋转后的坐标计算映射在所述圆柱体模型后的所述纹理顶点的坐标;否则,所述第二计算子单元8223根据所述纹理顶点旋转后的坐标计算映射在与所述圆柱体模型相切的平面后各纹理顶点的坐标,所述与所述圆柱体模型相切的平面平行于所述页面。
优选的,所述预设的起始翻页角度为45度。
可选的,所述装置80还可以包括:阴影模块84,用于增加黑背景以形成阴影,所述黑背景包括覆盖所述折边的渐进色条带以及位于所述第三区域的渐进色块,覆盖所述折边的渐进色条带的颜色由所述折边开始向两侧由深变浅,位于所述第三区域的渐进色块的颜色由所述第三区域的中心开始向周边由深变浅。
本实施例中各功能模块实现各自功能的具体过程,请参见上述图12至图13所示实施例中描述的具体内容,此处不再赘述。
相对于现有技术,本发明实施例提出的电子文档翻页效果实现装置,实现过程更加简单、容易调整、可扩展性更强。
本发明实施例中的电子文档翻页效果实现方法/装置对应的程序指令/模块可以存放在用户终端的存储器中,用户终端的处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的电子文档翻页效果实现方法。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,本文中虽然使用术语第一、第二等描述各个元件,但是这些元件应该不受这些术语的限制。这些术语仅被用于彼此区分元件。例如,第第一方向也可以称之为第二方向,第二方向也可被称之为第一方向,而不脱离本发明的范围。还应该理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (32)

1.一种电子文档翻页效果实现方法,其特征在于,所述方法包括:
检测步骤,确定所述电子文档的页面边界,检测初始翻页点以及当前翻页点,根据所述初始翻页点与所述当前翻页点确定页面的折边,所述折边将所述页面划分为第一区域及第二区域,所述第二区域包括所述初始翻页点,所述第二区域相对于所述折边的轴对称区域为第三区域;
翻页点移动计算步骤,根据所述初始翻页点以及所述当前翻页点的坐标计算当前翻页角度以及当前翻页长度;
圆柱卷边计算步骤,构建圆柱体模型以及与所述圆柱体模型相切的另一个平面,使所述圆柱体模型与所述页面的切线与所述折边重合,将所述第三区域对应的页面纹理贴在所述圆柱体模型或者所述另一个平面上;以及
检测下一翻页点,以下一翻页点作为当前翻页点重新确定所述页面的折边并且重复执行所述翻页点移动计算步骤以及圆柱卷边计算步骤,直至翻页点消失。
2.根据权利要求1所述的方法,其特征在于,所述将所述第三区域对应的页面纹理贴在所述圆柱体模型或者所述另一个平面上的步骤,包括:
根据所述第三区域对应的页面纹理顶点在第一直角坐标系内的坐标,计算在所述第一直角坐标系旋转为第二直角坐标系后各纹理顶点旋转后的坐标,其中,所述折边在所述第二直角坐标系中的位置相对于所述折边在所述第一直角坐标系中的位置旋转了(90-α)度,其中α表示当前翻页角度;
根据各纹理顶点旋转后的坐标,计算将所述各纹理顶点映射在所述圆柱体模型或者与所述圆柱体模型相切的另一个平面上之后所述各纹理顶点的坐标;
根据所述各纹理顶点映射在所述圆柱体模型或者与所述圆柱体模型相切的另一个平面上之后的坐标,计算在所述第二直角坐标系旋转为所述第一直角坐标系后,各纹理顶点在所述第一直角坐标系的坐标;以及
根据映射在所述圆柱体模型或与所述圆柱体模型相切的平面上的各纹理顶点在所述第一直角坐标系的坐标,将所述第三区域对应的页面纹理贴在所述圆柱体模型或者所述另一个平面上。
3.根据权利要求2所述的方法,其特征在于,所述第一直角坐标系以第一中心点为原点、页面其中一个边界所在的方向为X轴的延伸方向、与该边界相邻的另一边界所在的方向为Y轴的延伸方向、与页面垂直的方向为Z轴的延伸方向,所述第一中心点为平行于该边界并且经过所述初始翻页点的直线与所述折边的交点。
4.根据权利要求3所述的方法,其特征在于,所述根据各纹理顶点旋转后的坐标,计算将所述各纹理顶点映射在所述圆柱体模型或者与所述圆柱体模型相切的另一个平面上之后所述各纹理顶点的坐标的步骤,包括:
判断所述各纹理顶点旋转后的x坐标的绝对值是否小于所述圆柱体模型的圆周长的一半;
如果是,则根据所述纹理顶点旋转后的x坐标与所述圆柱体模型的圆周长的一半的比值,计算所述纹理顶点坐标映射于所述圆柱体模型后的扭曲角度,根据所述扭曲角度以及所述纹理顶点旋转后的坐标计算映射在所述圆柱体模型后的所述纹理顶点的坐标;
否则,根据所述纹理顶点旋转后的坐标计算映射在与所述圆柱体模型相切的平面后各纹理顶点的坐标,所述与所述圆柱体模型相切的平面平行于所述页面。
5.根据权利要求1所述的方法,其特征在于,所述当前翻页角度为所述折边与所述电子文档其中一条边界之间的夹角,当前翻页长度为所述折边与该边界上的交点与该边界的一个顶点之间的距离,以该边界所在方向为第一方向、与该边界垂直的方向为第二方向。
6.根据权利要求5所述的方法,其特征在于,以所述初始翻页点与所述当前翻页点的连线的中垂线为页面的折边,所述根据所述初始翻页点以及所述当前翻页点的坐标计算当前翻页角度的步骤,包括:
根据所述初始翻页点以及所述当前翻页点的坐标,分别计算所述初始翻页点与所述当前翻页点在第一方向以及第二方向上的距离;
计算所述初始翻页点与所述当前翻页点之间的距离;以及
根据所述初始翻页点与所述当前翻页点在第一方向上的距离与所述初始翻页点与所述当前翻页点之间的距离的比值,获得所述当前翻页角度。
7.根据权利要求6所述的方法,其特征在于,所述根据所述初始翻页点以及所述当前翻页点的坐标计算当前翻页长度的步骤,包括:
根据所述初始翻页点在所述第一方向的坐标以及该边界的长度,计算所述当前翻页长度的第一部分;
根据所述当前翻页角度、所述初始翻页点以及当前翻页点在所述第一方向的坐标计算所述当前翻页长度的第二部分;
根据所述当前翻页角度、所述初始翻页点在所述第二方向的坐标计算所述当前翻页长度的第三部分;以及
将所述第一部分、第二部分以及第三部分的值相加,获得所述当前翻页长度。
8.根据权利要求5所述的方法,其特征在于,所述根据所述初始翻页点以及所述当前翻页点的坐标计算当前翻页角度的步骤,包括:
根据所述初始翻页点的坐标确定所述初始翻页点的边界近似点;
根据所述初始翻页点的边界近似点以及所述当前翻页点的坐标,分别计算所述边界近似点与所述当前翻页点在第一方向以及第二方向上的距离;
计算所述边界近似点与所述当前翻页点之间的距离;以及
根据所述边界近似点与所述当前翻页点在第一方向上的距离与所述边界近似点与所述当前翻页点之间的距离的比值,获得所述当前翻页角度。
9.根据权利要求8所述的方法,其特征在于,所述根据所述初始翻页点以及所述当前翻页点的坐标计算当前翻页长度的步骤,包括:
根据所述当前翻页角度、所述边界近似点以及当前翻页点在所述第一方向的坐标计算所述当前翻页长度的第一部分;
根据所述当前翻页角度、所述边界近似点在所述第二方向的坐标计算所述当前翻页长度的第二部分;以及
将所述第一部分以及第二部分的值相加,获得所述当前翻页长度。
10.根据权利要求1所述的方法,其特征在于,所述翻页点移动计算步骤与所述圆柱卷边计算步骤之间,进一步包括:
增加黑背景以形成阴影,所述黑背景包括覆盖所述折边的渐进色条带以及位于所述第三区域的渐进色块,覆盖所述折边的渐进色条带的颜色由所述折边开始向两侧由深变浅,位于所述第三区域的渐进色块的颜色由所述第三区域的中心开始向周边由深变浅。
11.一种电子文档翻页效果实现方法,其特征在于,所述方法包括:
检测步骤,确定所述电子文档的页面边界,检测翻页触发点,根据预设的起始翻页角度、预设的起始翻页长度以及所述翻页触发点的位置确定页面折边的起始位置,所述折边将所述页面划分为第一区域及第二区域,所述第二区域相对于所述折边的轴对称区域为第三区域;
圆柱卷边计算步骤,构建圆柱体模型以及与所述圆柱体模型相切的另一个平面,使所述圆柱体模型与所述页面的切线与所述折边重合,将所述第三区域对应的页面纹理贴在所述圆柱体模型或者所述另一个平面上;
动画显示步骤,将贴在所述圆柱体模型或者与圆柱体模型相切的另一个平面上的页面纹理作为当前页面的翻起部分进行显示;以及
根据预设的翻页变化长度、预设的起始翻页角度以及当前页面的翻页角度,确定下一帧动画的折边位置,重复所述圆柱卷边计算步骤以及所述动画显示步骤,直至当前翻页角度达到预设的最大翻页角度。
12.根据权利要求11所述的方法,其特征在于,所述将所述第三区域对应的页面纹理贴在所述圆柱体模型或者所述另一个平面上的步骤,包括:
根据所述第三区域对应的页面纹理顶点在第一直角坐标系内的坐标,计算在所述第一直角坐标系旋转为第二直角坐标系后各纹理顶点旋转后的坐标,其中,所述折边在所述第二直角坐标系中的位置相对于所述折边在所述第一直角坐标系中的位置旋转了(90-α)度,其中α表示当前页面的翻页角度;
根据各纹理顶点旋转后的坐标,计算将所述各纹理顶点映射在所述圆柱体模型或者与所述圆柱体模型相切的另一个平面上之后所述各纹理顶点的坐标;
根据所述各纹理顶点映射在所述圆柱体模型或者与所述圆柱体模型相切的另一个平面上之后的坐标,计算在所述第二直角坐标系旋转为所述第一直角坐标系后,各纹理顶点在所述第一直角坐标系的坐标;以及
根据映射在所述圆柱体模型或与所述圆柱体模型相切的平面上的各纹理顶点在所述第一直角坐标系的坐标,将所述第三区域对应的页面纹理贴在所述圆柱体模型或者所述另一个平面上。
13.根据权利要求12所述的方法,其特征在于,所述第一直角坐标系以第一中心点为原点、页面其中一个边界所在的方向为X轴的延伸方向、与该边界相邻的另一边界所在的方向为Y轴的延伸方向、与页面垂直的方向为Z轴的延伸方向,所述第一中心点为平行于该边界并且经过所述翻页触发点的直线与所述折边的交点。
14.根据权利要求13所述的方法,其特征在于,所述根据各纹理顶点旋转后的坐标,计算将所述各纹理顶点映射在所述圆柱体模型或者与所述圆柱体模型相切的另一个平面上之后所述各纹理顶点的坐标的步骤,包括:
判断所述各纹理顶点旋转后的x坐标的绝对值是否小于所述圆柱体模型的圆周长的一半;
如果是,则根据所述纹理顶点旋转后的x坐标与所述圆柱体模型的圆周长的一半的比值,计算所述纹理顶点坐标映射于所述圆柱体模型后的扭曲角度,根据所述扭曲角度以及所述纹理顶点旋转后的坐标计算映射在所述圆柱体模型后的所述纹理顶点的坐标;
否则,根据所述纹理顶点旋转后的坐标计算映射在与所述圆柱体模型相切的平面后各纹理顶点的坐标,所述与所述圆柱体模型相切的平面平行于所述页面。
15.根据权利要求11所述的方法,其特征在于,所述预设的起始翻页角度为45度。
16.根据权利要求11所述的方法,其特征在于,所述检测步骤与所述圆柱卷边计算步骤之间,进一步包括:
增加黑背景以形成阴影,所述黑背景包括覆盖所述折边的渐进色条带以及位于所述第三区域的渐进色块,覆盖所述折边的渐进色条带的颜色由所述折边开始向两侧由深变浅,位于所述第三区域的渐进色块的颜色由所述第三区域的中心开始向周边由深变浅。
17.一种电子文档翻页效果实现装置,其特征在于,所述装置包括:
检测模块,用于确定所述电子文档的页面边界,检测初始翻页点以及当前翻页点,根据所述初始翻页点与所述当前翻页点确定页面的折边,所述折边将所述页面划分为第一区域及第二区域,所述第二区域包括所述初始翻页点,所述第二区域相对于所述折边的轴对称区域为第三区域;
翻页点移动计算模块,用于根据所述初始翻页点以及所述当前翻页点的坐标计算当前翻页角度以及当前翻页长度;以及
圆柱卷边计算模块,用于构建圆柱体模型以及与所述圆柱体模型相切的另一个平面,使所述圆柱体模型与所述页面的切线与所述折边重合,将所述第三区域对应的页面纹理贴在所述圆柱体模型或者所述另一个平面上。
18.根据权利要求17所述的装置,其特征在于,所述圆柱卷边计算模块,包括:
第一计算单元,用于根据所述第三区域对应的页面纹理顶点在第一直角坐标系内的坐标,计算在所述第一直角坐标系旋转为第二直角坐标系后各纹理顶点旋转后的坐标,其中,所述折边在所述第二直角坐标系中的位置相对于所述折边在所述第一直角坐标系中的位置旋转了(90-α)度,其中α表示当前翻页角度;
第二计算单元,用于根据各纹理顶点旋转后的坐标,计算将所述各纹理顶点映射在所述圆柱体模型或者与所述圆柱体模型相切的另一个平面上之后所述各纹理顶点的坐标;
第三计算单元,用于根据所述各纹理顶点映射在所述圆柱体模型或者与所述圆柱体模型相切的另一个平面上之后的坐标,计算在所述第二直角坐标系旋转为所述第一直角坐标系后,各纹理顶点在所述第一直角坐标系的坐标;以及
贴纹理单元,用于根据映射在所述圆柱体模型或与所述圆柱体模型相切的平面上的各纹理顶点在所述第一直角坐标系的坐标,将所述第三区域对应的页面纹理贴在所述圆柱体模型或者所述另一个平面上。
19.根据权利要求18所述的装置,其特征在于,所述第一直角坐标系以第一中心点为原点、页面其中一个边界所在的方向为X轴的延伸方向、与该边界相邻的另一边界所在的方向为Y轴的延伸方向、与页面垂直的方向为Z轴的延伸方向,所述第一中心点为平行于该边界并且经过所述初始翻页点的直线与所述折边的交点。
20.根据权利要求19所述的装置,其特征在于,所述第二计算单元,包括:判断子单元、第一计算子单元以及第二计算子单元,
所述判断子单元,用于判断所述各纹理顶点旋转后的x坐标的绝对值是否小于所述圆柱体模型的圆周长的一半;
如果是,则所述第一计算子单元根据各纹理顶点旋转后的x坐标与所述圆柱体模型的圆周长的一半的比值,计算所述纹理顶点坐标映射于所述圆柱体模型后的扭曲角度,根据所述扭曲角度以及所述纹理顶点旋转后的坐标计算映射在所述圆柱体模型后的所述纹理顶点的坐标;
否则,所述第二计算子单元根据所述纹理顶点旋转后的坐标计算映射在与所述圆柱体模型相切的平面后各纹理顶点的坐标,所述与所述圆柱体模型相切的平面平行于所述页面。
21.根据权利要求17所述的装置,其特征在于,所述当前翻页角度为所述折边与所述电子文档其中一条边界之间的夹角,当前翻页长度为所述折边与该边界上的交点与该边界的一个顶点之间的距离,以该边界所在方向为第一方向、与该边界垂直的方向为第二方向。
22.根据权利要求21所述的装置,其特征在于,以所述初始翻页点与所述当前翻页点的连线的中垂线为页面的折边,所述翻页点移动计算模块包括第一当前翻页角度计算单元,所述第一当前翻页角度计算单元用于:
根据所述初始翻页点以及所述当前翻页点的坐标,分别计算所述初始翻页点与所述当前翻页点在第一方向以及第二方向上的距离;
计算所述初始翻页点与所述当前翻页点之间的距离;以及
根据所述初始翻页点与所述当前翻页点在第一方向上的距离与所述初始翻页点与所述当前翻页点之间的距离的比值,获得所述当前翻页角度。
23.根据权利要求22所述的装置,其特征在于,所述翻页点移动计算模块包括第一当前翻页长度计算单元,所述第一当前翻页长度计算单元用于:
根据所述初始翻页点在所述第一方向的坐标以及该边界的长度,计算所述当前翻页长度的第一部分;
根据所述当前翻页角度、所述初始翻页点以及当前翻页点在所述第一方向的坐标计算所述当前翻页长度的第二部分;
根据所述当前翻页角度、所述初始翻页点在所述第二方向的坐标计算所述当前翻页长度的第三部分;以及
将所述第一部分、第二部分以及第三部分的值相加,获得所述当前翻页长度。
24.根据权利要求19所述的装置,其特征在于,所述翻页点移动计算模块包括第二当前翻页角度计算单元,所述第二当前翻页角度计算单元用于:
根据所述初始翻页点的坐标确定所述初始翻页点的边界近似点;
根据所述初始翻页点的边界近似点以及所述当前翻页点的坐标,分别计算所述边界近似点与所述当前翻页点在第一方向以及第二方向上的距离;
计算所述边界近似点与所述当前翻页点之间的距离;以及
根据所述边界近似点与所述当前翻页点在第一方向上的距离与所述边界近似点与所述当前翻页点之间的距离的比值,获得所述当前翻页角度。
25.根据权利要求24所述的装置,其特征在于,所述翻页点移动计算模块包括第二当前翻页长度计算单元,所述第二当前翻页长度计算单元用于:
根据所述当前翻页角度、所述边界近似点以及当前翻页点在所述第一方向的坐标计算所述当前翻页长度的第一部分;
根据所述当前翻页角度、所述边界近似点在所述第二方向的坐标计算所述当前翻页长度的第二部分;以及
将所述第一部分以及第二部分的值相加,获得所述当前翻页长度。
26.根据权利要求17所述的装置,其特征在于,所述装置进一步包括:
阴影模块,用于增加黑背景以形成阴影,所述黑背景包括覆盖所述折边的渐进色条带以及位于所述第三区域的渐进色块,覆盖所述折边的渐进色条带的颜色由所述折边开始向两侧由深变浅,位于所述第三区域的渐进色块的颜色由所述第三区域的中心开始向周边由深变浅。
27.一种电子文档翻页效果实现装置,其特征在于,所述装置包括:
检测模块,用于确定所述电子文档的页面边界,检测翻页触发点,根据预设的起始翻页角度、预设的起始翻页长度以及所述翻页触发点的位置确定页面折边的起始位置,所述折边将所述页面划分为第一区域及第二区域,所述第二区域相对于所述折边的轴对称区域为第三区域;
圆柱卷边计算模块,用于构建圆柱体模型以及与所述圆柱体模型相切的另一个平面,使所述圆柱体模型与所述页面的切线与所述折边重合,将所述第三区域对应的页面纹理贴在所述圆柱体模型或者所述另一个平面上;以及
动画显示模块,用于将贴在所述圆柱体模型上的页面纹理做为当前页面的翻起部分进行显示。
28.根据权利要求27所述的装置,其特征在于,所述圆柱卷边计算模块,包括:
第一计算单元,用于根据所述第三区域对应的页面纹理顶点在第一直角坐标系内的坐标,计算在所述第一直角坐标系旋转为第二直角坐标系后各纹理顶点旋转后的坐标,其中,所述折边在所述第二直角坐标系中的位置相对于所述折边在所述第一直角坐标系中的位置旋转了(90-α)度,其中α表示当前页面的翻页角度;
第二计算单元,用于根据各纹理顶点旋转后的坐标,计算将所述各纹理顶点映射在所述圆柱体模型或者与所述圆柱体模型相切的另一个平面上之后所述各纹理顶点的坐标;
第三计算单元,用于根据所述各纹理顶点映射在所述圆柱体模型或者与所述圆柱体模型相切的另一个平面上之后的坐标,计算在所述第二直角坐标系旋转为所述第一直角坐标系后,各纹理顶点在所述第一直角坐标系的坐标;以及
贴纹理单元,用于根据映射在所述圆柱体模型或与所述圆柱体模型相切的平面上的各纹理顶点在所述第一直角坐标系的坐标,将所述第三区域对应的页面纹理贴在所述圆柱体模型或者所述另一个平面上。
29.根据权利要求28所述的装置,其特征在于,所述第一直角坐标系以第一中心点为原点、页面其中一个边界所在的方向为X轴的延伸方向、与该边界相邻的另一边界所在的方向为Y轴的延伸方向、与页面垂直的方向为Z轴的延伸方向,所述第一中心点为平行于该边界并且经过所述翻页触发点的直线与所述折边的交点。
30.根据权利要求29所述的装置,其特征在于,所述第二计算单元,包括:判断子单元、第一计算子单元以及第二计算子单元,
所述判断子单元,用于判断所述各纹理顶点旋转后的x坐标的绝对值是否小于所述圆柱体模型的圆周长的一半;
如果是,则所述第一计算子单元根据各纹理顶点旋转后的x坐标与所述圆柱体模型的圆周长的一半的比值,计算所述纹理顶点坐标映射于所述圆柱体模型后的扭曲角度,根据所述扭曲角度以及所述纹理顶点旋转后的坐标计算映射在所述圆柱体模型后的所述纹理顶点的坐标;
否则,所述第二计算子单元根据所述纹理顶点旋转后的坐标计算映射在与所述圆柱体模型相切的平面后各纹理顶点的坐标,所述与所述圆柱体模型相切的平面平行于所述页面。
31.根据权利要求27所述的装置,其特征在于,所述预设的起始翻页角度为45度。
32.根据权利要求27所述的装置,其特征在于,所述装置进一步包括:
阴影模块,用于增加黑背景以形成阴影,所述黑背景包括覆盖所述折边的渐进色条带以及位于所述第三区域的渐进色块,覆盖所述折边的渐进色条带的颜色由所述折边开始向两侧由深变浅,位于所述第三区域的渐进色块的颜色由所述第三区域的中心开始向周边由深变浅。
CN201310176219.2A 2013-05-14 2013-05-14 电子文档翻页效果实现方法及装置 Active CN104156144B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310176219.2A CN104156144B (zh) 2013-05-14 2013-05-14 电子文档翻页效果实现方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310176219.2A CN104156144B (zh) 2013-05-14 2013-05-14 电子文档翻页效果实现方法及装置

Publications (2)

Publication Number Publication Date
CN104156144A true CN104156144A (zh) 2014-11-19
CN104156144B CN104156144B (zh) 2018-02-27

Family

ID=51881657

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310176219.2A Active CN104156144B (zh) 2013-05-14 2013-05-14 电子文档翻页效果实现方法及装置

Country Status (1)

Country Link
CN (1) CN104156144B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104461244A (zh) * 2014-12-12 2015-03-25 深圳市财富之舟科技有限公司 一种智能手机的界面切换方法
CN105955599A (zh) * 2016-05-13 2016-09-21 锐达互动科技股份有限公司 一种在电子设备上模拟文档阅读方式的实现方法
CN107885553A (zh) * 2017-11-30 2018-04-06 北京小米移动软件有限公司 动画加载方法、装置及电子设备
WO2018176653A1 (zh) * 2017-03-30 2018-10-04 掌阅科技股份有限公司 电子书页面显示方法、装置和终端设备
CN112433657A (zh) * 2020-11-23 2021-03-02 掌阅科技股份有限公司 电子书的仿真翻页方法、电子设备及计算机存储介质
CN112543249A (zh) * 2019-09-23 2021-03-23 腾讯科技(深圳)有限公司 画面显示方法、装置、终端以及存储介质
WO2022105513A1 (zh) * 2020-11-23 2022-05-27 掌阅科技股份有限公司 电子书的仿真翻页方法、电子设备及计算机存储介质
CN116755595A (zh) * 2023-08-11 2023-09-15 江苏中威科技软件系统有限公司 一种基于通过内容与页面边框的距离动态翻页效果的方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101930340A (zh) * 2010-08-24 2010-12-29 福州瑞芯微电子有限公司 一种电子书模拟真实翻页产生光照效果的方法
CN102221980A (zh) * 2011-07-29 2011-10-19 深圳芯智汇科技有限公司 电子书模拟翻页效果实现方法及系统
CN102981718A (zh) * 2012-10-11 2013-03-20 北京掌中浩阅科技有限公司 一种电子读物的模拟真书翻页效果的方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101930340A (zh) * 2010-08-24 2010-12-29 福州瑞芯微电子有限公司 一种电子书模拟真实翻页产生光照效果的方法
CN102221980A (zh) * 2011-07-29 2011-10-19 深圳芯智汇科技有限公司 电子书模拟翻页效果实现方法及系统
CN102981718A (zh) * 2012-10-11 2013-03-20 北京掌中浩阅科技有限公司 一种电子读物的模拟真书翻页效果的方法

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104461244A (zh) * 2014-12-12 2015-03-25 深圳市财富之舟科技有限公司 一种智能手机的界面切换方法
CN105955599B (zh) * 2016-05-13 2019-06-07 锐达互动科技股份有限公司 一种在电子设备上模拟文档阅读方式的实现方法
CN105955599A (zh) * 2016-05-13 2016-09-21 锐达互动科技股份有限公司 一种在电子设备上模拟文档阅读方式的实现方法
CN108664454B (zh) * 2017-03-30 2020-09-11 掌阅科技股份有限公司 电子书页面显示方法、装置和终端设备
CN108664454A (zh) * 2017-03-30 2018-10-16 掌阅科技股份有限公司 电子书页面显示方法、装置和终端设备
WO2018176653A1 (zh) * 2017-03-30 2018-10-04 掌阅科技股份有限公司 电子书页面显示方法、装置和终端设备
US11054969B2 (en) 2017-03-30 2021-07-06 Zhangyue Technology Co., Ltd Method and device for displaying page of electronic book, and terminal device
CN107885553A (zh) * 2017-11-30 2018-04-06 北京小米移动软件有限公司 动画加载方法、装置及电子设备
CN112543249A (zh) * 2019-09-23 2021-03-23 腾讯科技(深圳)有限公司 画面显示方法、装置、终端以及存储介质
CN112433657A (zh) * 2020-11-23 2021-03-02 掌阅科技股份有限公司 电子书的仿真翻页方法、电子设备及计算机存储介质
WO2022105513A1 (zh) * 2020-11-23 2022-05-27 掌阅科技股份有限公司 电子书的仿真翻页方法、电子设备及计算机存储介质
CN116755595A (zh) * 2023-08-11 2023-09-15 江苏中威科技软件系统有限公司 一种基于通过内容与页面边框的距离动态翻页效果的方法
CN116755595B (zh) * 2023-08-11 2023-10-27 江苏中威科技软件系统有限公司 一种基于通过内容与页面边框的距离动态翻页效果的方法

Also Published As

Publication number Publication date
CN104156144B (zh) 2018-02-27

Similar Documents

Publication Publication Date Title
CN104156144A (zh) 电子文档翻页效果实现方法及装置
CN112181203B (zh) 柔性装置及其接口方法
US20220005388A1 (en) User interface transitions and optimizations for foldable computing devices
US8860675B2 (en) Drawing aid system for multi-touch devices
US9013509B2 (en) System and method for manipulating digital images on a computer display
US8239785B2 (en) Edge gestures
US9594493B2 (en) Graphical user interface with dial control for a parameter
US20110191718A1 (en) Link Gestures
JP2015507783A (ja) ディスプレイ装置及びそれを用いた画面モード変更方法
WO2009094091A1 (en) Projection of graphical objects on interactive irregular displays
US20120120015A1 (en) Representative image
KR101735442B1 (ko) 표시장치에서 객체의 오리엔테이션을 조작하기 위한 장치 및 방법
CN102778997B (zh) 一种窗口显示方法及装置
US20220155948A1 (en) Offset touch screen editing
US11275501B2 (en) Creating tables using gestures
US20210208768A1 (en) Visual Manipulation of a Digital Object
US20130127867A1 (en) Freestyle drawing supported by stencil edge shapes
KR20140094958A (ko) 플렉서블 디스플레이 장치의 동작 실행 방법 및 그 장치
TW201344525A (zh) 觸控式電子裝置及其頁面內容存儲方法
US9501210B2 (en) Information processing apparatus
US11669241B2 (en) Touch control method, apparatus, and device and computer-readable storage medium
US20150350263A1 (en) Method of enhancing interaction efficiency of multi-user collaborative graphical user interface (gui) and device thereof
TWI442308B (zh) 依據軌跡屬性顯示目標資料之系統及其方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant