贝塞尔曲线与翻页效果

本文详细探讨了实现翻页效果的数学原理,包括贝塞尔曲线在其中的作用。通过分析翻页过程中的三个关键区域——当前页的可见部分、背面区域和下一页的一角,介绍了如何计算各点坐标,特别是利用贝塞尔曲线生成蓝色和黄色区域的路径。最后,阐述了如何结合canvas的clipPath方法来绘制和剪裁这些区域,以达到逼真的翻页视觉效果。
摘要由CSDN通过智能技术生成
               

先来看一张翻页的效果图。假设从右下角开始翻页

实现真实的翻页效果,为了能在翻页的过程中看到下一页的内容,在翻页之前必须准备两张页面,一张是当前页,另一张是下一页。翻页的过程就是对这两张页面的剪切,组合过程。

用户看到的可以分为3部分:当前页的可见部分(上图绿色部分),把书页翻起来后看到的背面区域(上图黄色部分),把书页翻起来后看到的下一页的一角(上图蓝色部分)。

接下来看一下三个颜色的区域怎么获取:

假设 a 为当前屏幕的触点。

f 为右下角的坐标。

g 是直线 af 的垂直平分线上的点

eh 是过 g 点垂直于 af 的直线。

—— —— —— —— —— —— ——  —— —— —— —— —— —— —— 

此时通过数学知识可以求得 

g 的坐标点: gx = (ax + fx) / 2;  gy = (ay + fy) / 2;

e点的坐标  通过公式  em * mf = gm * gm (其中em两点之间的长度)可以计算出来

同理计算出h的坐标

。。。。。。。。。。。。。。。。。

然后就剩下 i-j-k  b-d-c 这两条贝塞尔曲线的

其中 cj 是  ag 的垂直平分线

根据三角形的性质  ef / ec = gf / go = 2 

可以求出 c 点坐标, 同理求出 b k j

现在只剩下d i

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值