电子书翻页算法
主要原理:
- 将电子书分为3个内容层,叠放顺序如图.第一层为当前页面层,是现在正在显示的页面;第二层是随鼠标拖拽时卷起的页角,第三层是当页角卷起时,露出下一页的层。
- 设置遮罩:当页边卷起时,层1仅显示四边形FBDE内部分,层2仅显示ABCD部分,层3仅显示BGHD部分.
- 旋转:层2内的内容要随着鼠标运动而不停变换倾斜角度,其角度始终与AC边斜度一致.
- 翻页:当页面完全翻过时,层1的当前页数=当前页数+1
程序的核心在于如何获得四个点ABCD的坐标:
我使用的是求垂直平分线的方法,
既:点C是鼠标位置,点H是页角位置,BD即为此两点间的垂直平分线.
由已知的C,H坐标求出直线BD的一次函数y=kx+b
再求出直线BD其与FG,EH的切点,既得点B,D坐标。
点A是点G于直线BD的对称点,通过求点G对BD的对称点既可得点A坐标.
参考地址: