一种3d虚拟现实翻页实现方法

文档序号:6524771阅读:219来源:国知局
一种3d虚拟现实翻页实现方法
【专利摘要】本发明公开一种3D虚拟现实翻页实现方法,包括步骤:S101、当接收到手指分离点坐标时,获取已知分离点的坐标;S102、根据接收到的手指分离点坐标和获取到的已知分离点坐标,计算页角下位点坐标、页角上位点坐标、额外页角上位点坐标;S103、根据条件将计算出的分离点坐标输入3D空间贝赛尔曲线方程计算翻页曲线坐标;S104、根据OpenGL的纹理坐标规则计算翻页曲线纹理坐标;S105、根据各分离点、翻页曲线坐标以及翻页曲线纹理坐标进行渲染。
【专利说明】一种3D虚拟现实翻页实现方法
【技术领域】
[0001]本发明涉及一种3D虚拟现实翻页实现方法。
【背景技术】
[0002]随着计算机科学的迅猛发展,计算机图形学已从二维(2D)平面图形阶段发展到更加绚丽逼真、高质量的三维(3D)立体图形阶段,并广泛应用在娱乐、科学等各计算机应用领域,推动了虚拟现实、科学计算可视化等领域的进步。
[0003]现有的电子书应用方面,为了模拟翻页的逼真效果,存在翻页效果的实现方案,但现有技术通常仅实现:以平面模式将一个折角从页面一边移动到另一边;在限定的角度、起始点进行有限的模拟翻动;或者,虽然翻页的角度、起始点不受限制,但整个翻页过程仅限在二维平面内,无法表现翻页的三维效果。

【发明内容】

[0004]为解决现有技术中以平面模式将一个折角从页面一边移动到另一边;在限定的角度、起始点进行有限的模拟翻动;或者,虽然翻页的角度、起始点不受限制,但整个翻页过程仅限在二维平面内,无法表现翻页的三维效果的技术缺陷,本发明提供一种3D虚拟现实翻页实现方法。
[0005]本发明采用的第一个技术方案是:
[0006]提供一种3D虚拟现实翻页实现方法,包括步骤:S101、当接收到手指分离点坐标时,获取已知分离点的坐标;S102、根据接收到的手指分离点坐标和获取到的已知分离点坐标,计算页角下位点坐标、页角上位点坐标、额外页角上位点坐标;S103、根据条件将计算出的分离点坐标输入3D空间贝赛尔曲线方程计算翻页曲线坐标;S104、根据OpenGL的纹理坐标规则计算翻页曲线纹理坐标;S105、根据各分离点、翻页曲线坐标以及翻页曲线纹理坐标进行渲染。
[0007]本发明的有益效果是:区别于现有技术中以平面模式将一个折角从页面一边移动到另一边;在限定的角度、起始点进行有限的模拟翻动;或者,虽然翻页的角度、起始点不受限制,但整个翻页过程仅限在二维平面内,无法表现翻页的三维效果的技术缺陷,本发明提供一种3D虚拟现实翻页实现方法,通过使用3D空间贝赛尔曲线作为翻页曲线.进行仿真模拟,实现在任何起始点、任意角度,根据翻页手指所处的位置,实时计算出构成翻页曲面的其它分离点,再根据这些分离点与手指所处的位置,使用贝赛尔曲线模拟翻页曲线的弧线显示,以3D方法真实虚拟现实翻页的每个动作。
【专利附图】

【附图说明】
[0008]图1是本发明一实施方式中一种3D虚拟现实翻页实现方法的执行流程图;
[0009]图2是手指分离点位于右下页面且不存在额外页角上位点的翻页渲染效果图;
[0010]图3是手指分离点位于右上页面且不存在额外页角上位点的翻页渲染效果图;[0011]图4是手指分离点位于左下页面且不存在额外页角上位点的翻页渲染效果图;
[0012]图5是手指分离点位于右上页面且不存在额外页角上位点的翻页渲染效果图;
[0013]图6是手指分离点位于左下页面且存在额外页角上位点的翻页渲染效果图;
[0014]图7是手指分离点位于左上页面且存在额外页角上位点的翻页渲染效果图;
[0015]图8是手指分离点位于右下页面且存在额外页角上位点的翻页渲染效果图;
[0016]图9是手指分离点位于右上页面且存在额外页角上位点的翻页渲染效果图。
【具体实施方式】
[0017]为详细说明本发明的技术内容、构造特征、所实现目的及效果,以下结合实施方式并配合附图详予说明。
[0018]首先,对贝赛尔曲线的定义进行说明:
[0019]贝赛尔曲线(Bezier curve),又称贝兹曲线或贝济埃曲线,是应用于二维图形应用程序的数学曲线。一般的矢量图形软件通过它来精确画出曲线,贝兹曲线由线段与节点组成,节点是可拖动的支点,线段像可伸缩的皮筋,我们在绘图工具上看到的钢笔工具就是来做这种矢量曲线的。贝赛尔曲线是计算机图形学中相当重要的参数曲线,在一些比较成熟的位图软件中也有贝赛尔曲线工具,如Photoshop等。在Flash4中还没有完整的曲线工具,而在Flash5里面已经提供出贝赛尔曲线工具。
[0020]贝赛尔曲线的每一个顶点都有两个控制点,用于控制在该顶点两侧的曲线的弧度。它是应用于二维图形应用程序的数学曲线,曲线的定义有四个点:起始点、终止点(也称锚点)以及两个相互分离的中间点。滑动两个中间点,贝赛尔曲线的形状会发生变化。因此贝赛尔曲线是依据四个位置任意的点坐标绘制出的一条光滑曲线。
[0021]下面对本发明的技术方案进行详细阐述。
[0022]请参阅图1,是本发明一实施方式中一种3D虚拟现实翻页实现方法的执行流程图。该3D虚拟现实翻页实现方法包括步骤:
[0023]S101、当接收到手指分离点坐标时,获取已知分离点的坐标;
[0024]S102、根据接收到的手指分离点坐标和获取到的已知分离点坐标,计算页角下位点坐标、页角上位点坐标、额外页角上位点坐标;
[0025]S103、根据条件将计算出的分离点坐标输入3D空间贝赛尔曲线方程计算翻页曲线坐标;
[0026]S104、根据OpenGL的纹理坐标规则计算翻页曲线纹理坐标;
[0027]S105、根据各分离点、翻页曲线坐标以及翻页曲线纹理坐标进行渲染。
[0028]其中,在所述步骤SlOl前还包括:
[0029]S201、定义作为翻页曲线的贝赛尔曲线的相关参数,其中,所述相关参数包括曲线片段数、曲线片段有效长度、曲线数组,曲线数组包括多个分离点,分离点个数=曲线片段数-1,贝赛尔曲线片段有效长度=1/贝赛尔曲线片段数,所述分离点个数为4 ;
[0030]S202、根据已定义的所述相关参数来定义贝赛尔曲线方程,该贝赛尔曲线方程为:翻页曲线坐标==(l_t)3*起始分离点坐标+3t (1-t)2*第二分离点坐标+3t3*第三分离点坐标+t3*结束分离点坐标,t为当前点到起始分离点的曲线片段长度。
[0031]其中,所述步骤S102中“计算页角下位点坐标”具体包括:[0032]S1021、判断手指分离点的横坐标所处位置情况,其中,页面包括左页面、右页面,左页面平均分割为左上页面和左下页面,右页面平均分割为右上页面和右下页面,所处位置情况包括位于左上页面、位于左下页面、位于右上页面、位于右下页面;当位于右下页面进入步骤S1022,当位与右上页面进入步骤S1023,当位于左下页面进入步骤S1024,当位于左上页面进入步骤S1025 ;
[0033]S1022、确定页角下位点纵坐标等于右下点纵坐标,根据页角下位点至手指分离点的距离与页角下位点到至右下点的距离相等,使用空间两点间的距离公式计算得页角下位点横坐标;
[0034]S1023、确定页角下位点纵坐标等于右上点纵坐标,根据页角下位点至手指分离点的距离与页角下位点至右上点的距离相等,使用空间两点间的距离公式计算得页角下位点横坐标;[0035]S1024、确定页角下位点纵坐标等于左下点纵坐标,根据页角下位点至手指分离点的距离与页角下位点至左下点的距离相等使用空间两点间的距离公式计算得页角下位点横坐标;
[0036]S1025、确定页角下位点纵坐标等于左上点纵坐标,根据页角下位点至手指分离点的距离与页角下位点至左上点的距离相等,使用空间两点间的距离公式计算得页角下位点横坐标。
[0037]其中,所述步骤S102中“计算页角上位点坐标、计算额外页角上位点坐标”步骤,具体包括下述步骤,具体地,所述步骤S1022、S1023后进入下述步骤S1026,所述步骤
S1024、S1025后进入下述步骤S10210:
[0038]S1026、判断手指分离点的横坐标是否大于等于页角下位点的横坐标且小于等于右下点的横坐标,若是,进入步骤S1027计算页角上位点坐标,若否,进入步骤S1028 ;
[0039]S1027、当手指分离点位于右下页面时,确定页角上位点横坐标等于右下点横坐标,根据页角上位点与右下点、页角下位点构成的三角形空间使用三角形定律计算得页角上位点纵坐标;当手指分离点位于右上页面时,确定页角上位点横坐标等于右上点横坐标,根据页角上位点与右上点、页角下位点构成的三角形空间使用三角形定律计算得页角上位点纵坐标;
[0040]S1028、当手指分离点位于右下页面时,计算临时辅助变量tmp=cos (atan ((y右下点 手指分离点纵坐标+ (手指分离点横坐标中间下位点横坐标))),额外页角
上位点纵坐标=tmpX页面高度+手指分离点纵坐标然后判断额外页角上位点纵坐标是否大于等于右上点纵坐标,若是,则执行步骤S1027计算页角上位点坐标,若否,进入步骤S1029 ;当手指分离点位于右上页面时,计算临时辅助变量tmp=cos (atan ((y 手指分离点纵坐标+ (手指分离点横坐标中间上位点横坐标))),额外页角上位点纵坐标=tmpX页面高度+手指分离点纵坐标然后判断额外页角上位点纵坐标是否小于等于右下点纵坐标,若是,则执行步骤S1027计算页角上位点坐标,若否,进入步骤S1029 ;
[0041]S1029、当手指分离点位于右下页面时,确定页角上位点纵坐标等于右上点纵坐标,计算临时辅助变量tmp’ =sin (atan ((y^T^手指分离点纵坐标) + (手指分离点横坐标中间下位点横坐标))),额外页角上位点横坐标=tmp’ X (-页面高度)+手指分离点横坐标,然后根据页角上位点至额外页角上位点的距离与页角上位点至右上点的距离相等,使用空间两点间的距离公式计算得页角上位点横坐标;当手指分离点位于右上页面时,确定页角上位点纵坐标等于右下点纵坐标,计算临时辅助变量tmp’ =sin (atan ((y右上^手指分离点纵坐标) + (手指分离点横坐标中间上位点横坐标))),额外页角上位点横坐标=tmp’ X (-页面高度)+手指分离点横坐标,然后根据页角上位点至额外页角上位点的距离与页角上位点至右下点的距离相等,使用空间两点间的距离公式计算得其横坐标;
[0042]S10210、判断手指分离点的横坐标是否大于等于页角左下点的横坐标且小于等于页角下位点的横坐标,若是,进入步骤S10211计算页角上位点坐标,若否,进入步骤S10212 ;
[0043]S10211、当手指分离点位于左下页面时,确定页角上位点横坐标等于左下点横坐标,根据页角上位点与左下点、页角下位点构成的三角形空间使用三角形定律计算得页角上位点纵坐标;当手指分离点位于左上页面时,确定页角上位点横坐标等于左上点横坐标,根据页角上位点与左上点、页角下位点构成的三角形空间使用三角形定律计算得页角上位点纵坐标;
[0044]S10212、当手指分离点位于左下页面时,临时辅助变量tmp=cos (atan ((左下点纵坐标手指分离点纵坐标)+ (手指分离点横坐标中间下位点横坐标))),额外页角上位点纵坐标=tmpX页面高度+手指分离点纵坐标,判断额外页角上位点纵坐标是否大于等于左上点纵坐标,当判定额外页角上位点纵坐标大于等于左上点纵坐标时,执行步骤S10211计算页角上位点坐标,若否,进入步骤S10213 ;当手指分离点位于左下页面时,临时辅助变量tmp=cos (atan ((左上点纵坐标手指分离点纵坐标)+ (手指分离点横坐标中间上位点横坐标))), 额外页角上位点纵坐标=tmpX页面高度+手指分离点纵坐标,判断额外页角上位点纵坐标是否小于等于左下点纵坐标,若是,执行步骤S10211计算页角上位点坐标,若否,进入步骤S10213 ;
[0045]S10213、手指分离点位于左下页面时,确定页角上位点坐标纵坐标等于左上点纵坐标,计算临时辅助变量tmp’ =sin (atan ((左下点纵坐标手指分离点纵坐标)+ (手指分离点横坐标中间下位点横坐标))),额外页角上位点横坐标=tmp’ X (-页面高度)+手指分离点横坐标,根据页角上位点坐标至额外页角上位点的距离与页角上位点坐标至左上点的距离相等使用空间两点间的距离公式计算得页角上位点坐标横坐标;若手指分离点位于左上页面时,确定页角上位点纵坐标等于左下点纵坐标,计算临时辅助变量tmp’ =sin (atan ((左上点纵坐标手指分离点纵坐标)+ (手指分离点横坐标中间上位点横坐标))),额外页角上位点横坐标=tmp’ X (-页面高度)+手指分离点横坐标,根据页角上位点至额外页角上位点的距离与页角上位点至左下点的距离相等,使用空间两点间的距离公式计算得页角上位点横坐标;
[0046]其中,所述步骤S103具体包括下述步骤,具体地,所述步骤S1027、S10211后执行下述步骤S1031,所述步骤S1029、S10213后执行下述步骤S1033:
[0047]S1031、把手指分离点作为起点、页角上位点作为终点、把手指分离点和页角下位点的距离中间点同时作为第二、第三分离点代入贝塞尔曲线方程计算得上位方向贝赛尔曲线分离点数组坐标,然后进入步骤S1032 ;[0048]S1032、把手指分离点作为起始分离点、页角下位点作为结束分离点、手指分离点和页角下位点的距离中间点同时作为第二、第三分离点代入贝塞尔曲线方程计算得计算下位方向贝赛尔曲线分离点数组坐标;
[0049]S1033、把额外页角上位点作为起始分离点、页角上位点作为结束分离点、额外页角上位点和页角上位点的距离中间点同时作为第二、第三分离点代入贝塞尔曲线方程计算得上位方向贝赛尔曲线分离点数组坐标,然后执行步骤S1034;
[0050]S1034、把手指分离点作为起始分离点、页角下位点作为结束分离点、手指分离点与页角下位点的距离中间点同时作为第二、第三分离点代入贝塞尔曲线方程计算得下位方向贝赛尔曲线分离点数组坐标。
[0051 ] 其中,所述步骤S104具体包括下述步骤,具体地址,所述步骤S1032后执行下述步骤S1041,所述步骤S1034后执行下述步骤S1043:
[0052]S1041、计算上位贝赛尔曲线分离点纹理点数组坐标,其中每个纹理点的u为1,根据公式 TopBezierLineUV[i].v= (TopBezierLineVTX[O].x-TopBezierLineVTX[i].x) + 页面高度+ Λ t (i e [O, BEZIER_LINE_VTX_NUM-1])可计算得每个纹理点的V,然后执行步骤S1042 ;
[0053]S1042、计算下位贝赛尔曲线分离点纹理点数组坐标,其中每个纹理点的V为0,根据公式
[0054]BottomBezierLineUV [i].U= (BottomBezierLineVTX [i].x-BottomBezierLineVTX[0].x) + 页面高度 +At (i e [0, BEZIER_LINE_VTX_NUM-1])计算得每个纹理点的u ;
[0055]S1043、计算上位贝赛尔曲线分离点纹理点数组坐标,其中每个纹理点的V为0,根据公式
[0056]TopBezierLineUV[i].u=l- (TopBezierLineVTX[O].X-TopBezierLineVTX[i].X) +页面宽度(i e [O, BEZIER_LINE_VTX_NUM-1])计算得每个纹理点的U,然后执行步骤S1044 ;
[0057]S1044、计算下位贝赛尔曲线分离点纹理点数组坐标,其中每个纹理点的V为0,根据公式
[0058]BottomBezierLineUV [i].U= (BottomBezierLineVTX [i].x-BottomBezierLineVTX[0].x) + 页面高度 +At (i e [O, BEZIER_LINE_VTX_NUM-1])计算得每个纹理点的U。
[0059]其中,所述步骤S105具体包括下述步骤,根据各分离点坐标、上位方向贝赛尔曲线分离点数组坐标、下位方向贝赛尔曲线分离点数组坐标、上位贝赛尔曲线分离点纹理点数组坐标、下位贝赛尔曲线分离点纹理点数组坐标对页面进行渲染;具体地,渲染内容请结合图2-9,当手指分离点分别位于右下页面、右上页面、左下页面、左上页面时,所述步骤S1042后相应地分别进入下述步骤S1051、S1052、S1053、S1054,所述步骤S1044后相应地分别进入下述步骤S1055、S1056、S1057、S1058:
[0060]S1051、按照左页面分离点TL,MT,MB, BL,右页面分离点MT,TR, BR,MB,右页面的下一个页面分离点BLVtx, TLVtx, BR,翻页曲线角分离点BLVtx, HVtx, TLVtx的顺序渲染,可参看图2 ;[0061]S1052、按照左页面分离点TL,MT,MB, BL,右页面分离点MT,TR, BR, MB,右页面的下一个页面分离点BLVtx, TR, TLVtx,翻页曲线角分离点BLVtx, TLVtx, HVtx的顺序渲染,可参看图3 ;
[0062]S1053、按照右页面分离点MT,TR, BR,MB,左页面分离点TL,MT,MB, BL,左页面的下一个页面分离点BLVtx, BL, TLVtx,翻页曲线角分离点BLVtx, TLVtx, HVtx的顺序渲染,可参看图4 ;
[0063]S1054、按照右页面分离点MT,TR, BR,MB,左页面分离点TL,MT,MB, BL,左页面的下一个页面分离点BLVtx, TLVtx, TL,翻页曲线角分离点BLVtx, HVtx, TLVtx的顺序渲染,可参看图5 ;
[0064]S1055、按照左页面分离点TL,MT,MB, BL,右页面分离点MT,TR, BR,MB,右页面的下一个页面分离点TLVtx, TR, BR, BLVtx,翻页曲线角分离点TP, TLVtx, BLVtx, HVtx的顺序渲染,可参看图6 ;
[0065]S1056、按照左页面分离点TL,MT,MB, BL,右页面分离点MT,TR, BR,MB,右页面的下一个页面分离点BLVtx, TR, BR, TLVtx,翻页曲线角分离点HVtx, BLVtx, TLVtx, TP的顺序渲染,可参看图7 ;
[0066]S1057、按照右页面分离点MT,TR, BR,MB,左页面分离点TL,MT,MB, BL,左页面的下一个页面分离点TL, TLVtx, BL, BLVtx,翻页曲线角分离点TLVtx, TP, HVtx, BLVtx的顺序渲染,可参看图8 ;
[0067]S1058、按照右页面分离点MT,TR, BR,MB,左页面分离点TL,MT,MB, BL,左页面的下一个页面分离点TL, BLVtx, TLVtx, BL,翻页曲线角分离点BLVt, HVtx, TP, TLVtx的顺序渲染,可参看图9。
[0068]下面通过具体实例对本发明的实现原理进行说明。
[0069](一)、定义作为翻页曲线的贝赛尔曲线的相关参数、3D空间分离点及纹理点:
[0070](I)定义翻页曲线相关参数,该相关参数包括曲线片段数、曲线片段有效长度、曲线数组:
[0071]定义曲线片段数BEZIER_LINE_SLICE,该片断数用于控制曲线的精度,可自行调M
iF.0
[0072]定义曲线数组,该曲线数组所包含的分离点数BEZIER_LINE_VTX_NUM=曲线片段数 BEZIER_LINE_SLICE+1。
[0073]定义贝赛尔曲线片段有效长度BEZIER_LINE_SLICE_LENGTH为贝赛尔曲线片段数的倒数。
[0074](2)定义3D空间分离点及纹理点
[0075]定义3D空间分离点Vtx3={x, y, z},其中x, y, z分别为3D空间X, Y, Z轴上的坐标值。
[0076]定义纹理点Texture2={u, v},其中u, V分别为纹理坐标空间水平方向、垂直方向上的坐标值。
[0077](3)定义翻页曲线分离点数组以及纹理点数组:
[0078]定义下位方向贝赛尔曲线分离点数组:
[0079]BottomBezierLineVTX[BEZIER_LINE_VTX_NUM];[0080]定义翻页曲线的上位方向贝赛尔曲线分离点数组:
[0081]TopBezierLineVTX[BEZIER_LINE_VTX_NUM];
[0082]定义翻页曲线的下位方向贝赛尔曲线分离点纹理点数组:
[0083]BottomBezierLineUV[BEZIER_LINE_VTX_NUM ;
[0084]定义翻页曲线的上位方向贝赛尔曲线分离点纹理点数组:
[0085]TopBezierLineUV[BEZIER_LINE_VTX_NUM]。
[0086]请一并参阅图2、图6,图2是第一情况下翻页曲线及其空间分离点示意图,图6是第三情况下翻页曲线及其空间分离点示意图。其中,定义Vtx3类型的3D空间分离点类型及其坐标如下表一: [0087]表一、分离点类型及其坐标
[0088]
【权利要求】
1.一种3D虚拟现实翻页实现方法,其特征在于,包括步骤: 5101、当接收到手指分离点坐标时,获取已知分离点的坐标; 5102、根据接收到的手指分离点坐标和获取到的已知分离点坐标,计算页角下位点坐标、页角上位点坐标、额外页角上位点坐标; 5103、根据条件将计算出的分离点坐标输入3D空间贝赛尔曲线方程计算翻页曲线坐标; 5104、根据OpenGL的纹理坐标规则计算翻页曲线纹理坐标; 5105、根据各分离点、翻页曲线坐标以及翻页曲线纹理坐标进行渲染。
2.根据权利要求1所述的一种3D虚拟现实翻页实现方法,其特征在于,在所述步骤SlOl前还包括: 5201、定义作为翻页曲线的贝赛尔曲线的相关参数,其中,所述相关参数包括曲线片段数、曲线片段有效长度、曲线数组,曲线数组包括多个分离点,分离点个数=曲线片段数-1,贝赛尔曲线片段有效长度=1/贝赛尔曲线片段数,所述分离点个数为4 ; 5202、根据已定义的所述相关参数来定义贝赛尔曲线方程,该贝赛尔曲线方程为:翻页曲线坐标==(l_t)3*起始分离点坐标+3t(l-t)2*第二分离点坐标+3t3*第三分离点坐标+t3*结束分离点坐标,t为当前点到起始分离点的曲线片段长度。
3.根据权利要求2所述的一种3D虚拟现实翻页实现方法,其特征在于,所述步骤S102中“计算页角下位点坐标”具体包括:` 51021、判断手指分离点的横坐标所处位置情况,其中,页面包括左页面、右页面,左页面平均分割为左上页面和左下页面,右页面平均分割为右上页面和右下页面,所处位置情况包括位于左上页面、位于左下页面、位于右上页面、位于右下页面;当位于右下页面进入步骤S1022,当位与右上页面进入步骤S1023,当位于左下页面进入步骤S1024,当位于左上页面进入步骤S1025 ; 51022、确定页角下位点纵坐标等于右下点纵坐标,根据页角下位点至手指分离点的距离与页角下位点至右下点的距离相等,使用空间两点间的距离公式计算得页角下位点横坐标; 51023、确定页角下位点纵坐标等于右上点纵坐标,根据页角下位点至手指分离点的距离与页角下位点至右上点的距离相等,使用空间两点间的距离公式计算得页角下位点横坐标; 51024、确定页角下位点纵坐标等于左下点纵坐标,根据页角下位点至手指分离点的距离与页角下位点至左下点的距离相等使用空间两点间的距离公式计算得页角下位点横坐标; 51025、确定页角下位点纵坐标等于左上点纵坐标,根据页角下位点至手指分离点的距离与页角下位点至左上点的距离相等,使用空间两点间的距离公式计算得页角下位点横坐标。
4.根据权利要求3所述的一种3D虚拟现实翻页实现方法,其特征在于,所述步骤S102中“计算页角上位点坐标、计算额外页角上位点坐标”步骤,具体包括下述步骤,其中,所述步骤S1022、S1023后进入下述步骤S1026,所述步骤S1024、S1025后进入下述步骤S10210: ` 51026、判断手指分离点的横坐标是否大于等于页角下位点的横坐标且小于等于右下点的横坐标,若是,进入步骤S1027计算页角上位点坐标,若否,进入步骤S1028 ; `51027、当手指分离点位于右下页面时,确定页角上位点横坐标等于右下点横坐标,根据页角上位点与右下点、页角下位点构成的三角形空间使用三角形定律计算得页角上位点纵坐标;当手指分离点位于右上页面时,确定页角上位点横坐标等于右上点横坐标,根据页角上位点与右上点、页角下位点构成的三角形空间使用三角形定律计算得页角上位点纵坐标; `51028、当手指分离点位于右下页面时,计算临时辅助变量tmpzcosfetanUy^TA手指分离点纵坐标+ (手指分离点横坐标中间下位点横坐标))),额外页角上位点纵坐标=tmpX页面高度+手指分离点纵坐标然后判断额外页角上位点纵坐标是否大于等于右上点纵坐标,若是,则执行步骤S1027计算页角上位点坐标,若否,进入步骤S1029 ;当手指分离点位于右上页面时,计算临时辅助变量tmpzcosfetanUy^j^手指分离点纵坐标#+ (手指分离点横坐标中间上位点横坐标))),额外页角上位点纵坐标=tmpX页面高度+手指分离点纵坐标然后判断额外页角上位点纵坐标是否小于等于右下点纵坐标,若是,则执行步骤S1027计算页角上位点坐标,若否,进入步骤S1029 ; `51029、当手指分离点位于右下页面时,确定页角上位点纵坐标等于右上点纵坐标,计算临时辅助变量tmp’ =sin(atan((y^T^手指分离点纵坐标) + (手指分离点横坐标赚中间下位点横坐标))),额外页角上位点横坐标=tmp’ X (-页面高度)+手指分离点横坐标,然后根据页角上位点至额外页角上位点的距离与页角上位点至右上点的距离相等,使用空间两点间的距离公式计算得页角上位点横坐标;当手指分离点位于右上页面时,确定页角上位点纵坐标等于右下点纵坐标,计算临时辅助变量tmp’ =sin (atan((y手指分离点纵坐标+ (手指分离点横坐标中间上位点横坐标))),额外页角上位点横坐标=tmp’ X (-页面高度)+手指分离点横坐标,然后根据页角上位点至额外页角上位点的距离与页角上位点至右下点的距离相等,使用空间两点间的距离公式计算得其横坐标; `510210、判断手指分离点的横坐标是否大于等于页角左下点的横坐标且小于等于页角下位点的横坐标,若是,进入步骤S10211计算页角上位点坐标,若否,进入步骤S10212 ; ` 510211、当手指分离点位于左下页面时,确定页角上位点横坐标等于左下点横坐标,根据页角上位点与左下点、页角下位点构成的三角形空间使用三角形定律计算得页角上位点纵坐标;当手指分离点位于左上页面时,确定页角上位点横坐标等于左上点横坐标,根据页角上位点与左上点、页角下位点构成的三角形空间使用三角形定律计算得页角上位点纵坐标; `510212、当手指分离点位于左下页面时,临时辅助变量tmp=cos(atan((左下点纵坐标 手指分离点纵坐标)+ (手指分离点横坐标中间下位点横坐标))),额外页角上位点纵坐标=tmpX页面高度+手指分离点纵坐标,判断额外页角上位点纵坐标是否大于等于左上点纵坐标,当判定额外页角上位点纵坐标大于等于左上点纵坐标时,执行步骤S10211计算页角上位点坐标,若否,进入步骤S10213;当手指分离点位于左下页面时,临时辅助变量tmp=cos (atan ((左上点纵坐标手指分离点纵坐标)+ (手指分离点横坐标中间上位点横坐标))),额外页角上位点纵坐标=tmpX页面高度+手指分离点纵坐标,判断额外页角上位点纵坐标是否小于等于左下点纵坐标,若是,执行步骤S10211计算页角上位点坐标,若否,进入步骤S10213 ; S10213、手指分离点位于左下页面时,确定页角上位点坐标纵坐标等于左上点纵坐标,计算临时辅助变量tmp’ =sin (atan((左下点纵坐标手指分离点纵坐标)+ (手指分离点横坐标中间下位点横坐标))),额外页角上位点横坐标=tmp’ X (-页面高度)+手指分离点横坐标,根据页角上位点坐标至额外页角上位点的距离与页角上位点坐标至左上点的距离相等使用空间两点间的距离公式计算得页角上位点坐标横坐标;若手指分离点位于左上页面时,确定页角上位点纵坐标等于左下点纵坐标,计算临时辅助变量tmp’ =sin(atan((左上点纵坐标手指分离点纵坐标)+ (手指分离点横坐标中间上位点横坐标))),额外页角上位点横坐标=tmp’ X (-页面高度)+手指分离点横坐标,根据页角上位点至额外页角上位点的距离与页角上位点至左下点的距离相等,使用空间两点间的距离公式计算得页角上位点横坐标。
5.根据权利要求3或4任意一项所述的一种3D虚拟现实翻页实现方法,其特征在于,所述步骤S103具体包括下述步骤,其中,所述步骤S1027、S10211后执行下述步骤S1031,所述步骤S1029、S10213后执行下述步骤S1033: S1031、把手指分离点作为起始分离点、页角上位点作为结束分离点、把手指分离点和页角下位点的距离中间点同时作为第二、第三分离点代入贝塞尔曲线方程计算得上位方向贝赛尔曲线分离点数组坐标,然后进入步骤S1032 ; S1032、把手指分离点作为起始分离点、页角下位点作为结束分离点、手指分离点和页角下位点的距离中间点同时作为第二、第三分离点代入贝塞尔曲线方程计算得计算下位方向贝赛尔曲线分离点数组坐标; S1033、把额外页角上 位点作为起始分离点、页角上位点作为结束分离点、额外页角上位点和页角上位点的距离中间点同时作为第二、第三分离点代入贝塞尔曲线方程计算得上位方向贝赛尔曲线分离点数组坐标,然后执行步骤S1034 ; S1034、把手指分离点作为起始分离点、页角下位点作为结束分离点、手指分离点与页角下位点的距离中间点同时作为第二、第三分离点代入贝塞尔曲线方程计算得下位方向贝赛尔曲线分离点数组坐标。
6.根据权利要求5所述的一种3D虚拟现实翻页实现方法,其特征在于,所述步骤S104具体包括下述步骤,其中,所述步骤S1032后执行下述步骤S1041,所述步骤S1034后执行下述步骤S1043: S1041、计算上位贝赛尔曲线分离点纹理点数组坐标,其中每个纹理点的u为1,根据公式 TopBezierLineUV[i].v= (TopBezierLineVTX[O].x-TopBezierLineVTX[i].x) + 页面高度+At (i e [0,BEZIER_LINE_VTX_NUM-1])可计算得每个纹理点的V,然后执行步骤S1042 ; S1042、计算下位贝赛尔曲线分离点纹理点数组坐标,其中每个纹理点的V为0,根据公式 BottomBezierLineUV[i].u=(BottomBezierLineVTX[i].x-BottomBezierLineVTX[0].x) + 页面高度 +At (i e [O, BEZIER_LINE_VTX_NUM-1])计算得每个纹理点的u ; S1043、计算上位贝赛尔曲线分离点纹理点数组坐标,其中每个纹理点的V为0,根据公式TopBezierLineUV[i].u=l-(TopBezierLineVTX[0].x-TopBezierLineVTX[i].x) + 页面宽度(i e [0,BEZIER_LINE_VTX_NUM-1])计算得每个纹理点的U,然后执行步骤S1044 ;S1044、计算下位贝赛尔曲线分离点纹理点数组坐标,其中每个纹理点的V为0,根据公式BottomBezierLineUV [i].U= (BottomBezierLineVTX[i].X-BottomBezierLineVTX[0].x) + 页面高度 +At (i e [O, BEZIER_LINE_VTX_NUM-1])计算得每个纹理点的Uo
7.根据权利要求6所述的一种3D虚拟现实翻页实现方法,其特征在于,所述步骤S105具体包括下述步骤,根据各分离点坐标、上位方向贝赛尔曲线分离点数组坐标、下位方向贝赛尔曲线分离点数组坐标、上位贝赛尔曲线分离点纹理点数组坐标、下位贝赛尔曲线分离点纹理点数组坐标对页面进行`渲染。
【文档编号】G06T15/00GK103677540SQ201310711847
【公开日】2014年3月26日 申请日期:2013年12月20日 优先权日:2013年12月20日
【发明者】叶伟 申请人:厦门市美亚柏科信息股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1