`
老七的米店
  • 浏览: 49256 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

切割翻页效果(一)

 
阅读更多

前段时间根据朋友的一个提议做了个翻页动画。效果跟水果忍者切割相似。如图


 

效果过程大致如下:

1)根据手势痕迹将当前图片分割为两部分;

2)将分割后的图片拉开一段距离,并适度放大图片,以模拟向屏幕外弹起效果,同时露出底层图片;

3)错位移动分割后的图片;

 

首先遇到的问题是如何对图片进行分割。我选择采用canvas.clipPath来实现;采用这种方法就要先确定PATH中各个节点的坐标;

起初我尝试利用分割线与图片边的交点,以及图片的顶点来确定Path;

如下图:



通过观察,却发现交点可以落在图片任意两条不同的边上,而且落点不同与其构成Path的顶点也不同,情况复杂,于是我果断放弃,另谋他路。一番尝试后,我决定采用以下方式;

设mHW为图片对角线的斜率,mSlope分割线的斜率;;

将切割情况分为,mSlope大于还是小于mHW两种情况进行处理;

先看mSlope大于mHW的情况,如图:

 


 
 点mDown 和mUp分别表示手指按下和弹起时的位置,两点所在直线即为分割线。分割线与x=-mWidth,x=2mWidth分别交于mX0 和mXw;显然两点坐标可以轻松得到:

 

private void calcPoints() {
		mSlope = (mDown.y - mUp.y) / (mDown.x - mUp.x);
		mX0.x = -mWidth;
		mX0.y = (-mWidth - mUp.x) * mSlope + mUp.y;
		mXw.x = 2 * mWidth;
		mXw.y = mSlope * (2 * mWidth - mUp.x) + mUp.y;
	}

  这样,被分割的两部分路径就总是可以用图中Part1,Part2 两个三角形确定。

Part1的路径为:

if (Math.abs(mSlope) > mHW) {
			if (mSlope < 0) {
				path.moveTo(-mWidth, mXw.y);
				path.lineTo(mXw.x, mXw.y);
				path.lineTo(mX0.x, mX0.y);
				path.close();
			} else {
				path.moveTo(-mWidth, mXw.y);
				path.lineTo(mX0.x, mX0.y);
				path.lineTo(mXw.x, mXw.y);
				path.close();
			}
		}

 Part2的路径为:

 

 

if (Math.abs(mSlope) > mHW) {
			if (mSlope < 0) {
				path.moveTo(2 * mWidth, mX0.y);
				path.lineTo(mXw.x, mXw.y);
				path.lineTo(mX0.x, mX0.y);
				path.close();
			} else {
				path.moveTo(2 * mWidth, mX0.y);
				path.lineTo(mX0.x, mX0.y);
				path.lineTo(mXw.x, mXw.y);
				path.close();
			}
		} 
 

 

而当切割线斜率小于mSlope时,情况与此相似,就不一一赘述了。

 

 

 

  • 大小: 607.3 KB
  • 大小: 28.1 KB
  • 描述: p1-1
  • 大小: 19.2 KB
  • 大小: 39.2 KB
分享到:
评论

相关推荐

    Android 真实书籍翻页效果.rar

    在Android应用开发中,实现真实的书籍翻页效果是一项常见的需求,尤其在电子阅读器或教育类应用中。这个“Android真实书籍翻页效果.rar”压缩包包含了一个实现此类效果的源码示例,旨在帮助开发者理解和掌握这一技术...

    易语言Example3源码,易语言智圆行方翻页效果模块

    在这个"易语言Example3源码"中,我们关注的是"智圆行方翻页效果模块",这是一个实现图形用户界面(GUI)动态翻页效果的代码实现。 "智圆行方"在这里可能是指模块的设计理念,寓意智慧圆满,行动方正,而"翻页效果...

    简单的Delphi JPG图片过渡特效,具有上下左右翻页效果..rar

    上下左右翻页效果通常涉及到图片的切割、变形和动画。在Delphi中,我们可以使用TBitmap对象来操作图像,将图片切割成多个部分,然后分别对这些部分进行变换。例如,向上翻页效果可能需要将图片底部的部分沿着垂直轴...

    html5 css3带翻页数字时钟动画特效

    这个翻页效果可能是通过改变数字的透明度、位置或者大小来模拟翻页的过程,营造出一种数字在时间流逝中翻转的视觉效果。 在CSS3中,还有`transition`属性,它可以平滑地过渡一个或多个CSS属性值,这可能被用来处理...

    Android仿Flipboard动画效果的实现代码

    为了实现动态的翻页效果,通常还需要一个定时器或者`ValueAnimator`来改变`degreeZ`的值,使其随着时间推移逐渐变化,这样切割线就会连续地移动,形成平滑的翻页动画。 8. **完整代码**: 完整的实现可能包括对`...

    unity 数字翻页UI设计.zip

    对于数字翻页效果,主要会用到Image组件来创建翻页的背景和边角,以及可能的Text组件来显示数字内容。 3. **精灵(Sprite)和材质(Material)**:数字翻页通常需要定制的纹理图像,这些图像被切割成多个精灵,分别...

    制作翻书效果图片展示PPT学习教案.pptx

    不要使用插入相册功能,因为我们需要独立操作每一张图片以实现翻页效果。第一步保持不变,不作处理,从第七页开始,将下一页的图片复制并粘贴到当前页,以此类推,直至第二页被复制到第三页,形成一个连续的序列。 ...

    Director_过渡效果表

    4. Bladewipe:类似于刀片切割屏幕,逐渐揭示下一个场景。 5. Bricks:画面被分割成小方格并逐个破碎,向上移动。 6. Bubbles:元素如同气泡般升起,形成凸起效果。 7. Bytes2:可能是一种像素化过渡,呈现数据流动...

    jquery马赛克图片翻转拼接.rar

    这通常是通过CSS3的border-radius和box-shadow属性来模拟三维立体感,同时配合transform的rotateY()方法,让元素沿着Y轴翻转,形成翻页效果。这个效果可以进一步增强用户体验,使得图片翻转更加生动。 综上所述,...

    行业文档-设计装置-一种磁石书签.zip

    1. **设计理念**:磁石书签可能源于对传统纸质书签的改进,旨在解决传统书签易丢失或翻页时滑落的问题。设计师可能考虑到磁性的特性,使得书签能够牢固吸附在书页上,不易掉落,且方便用户快速找到阅读进度。 2. **...

    行业文档-设计装置-一种书的护角装置.zip

    设计者通常会考虑如何通过科学的结构设计和材料选择,来增强书角的保护效果,同时保持书籍的整体美观性。这种装置可能包括柔软且耐用的材料,如塑料、布料或者纸板,它们能够有效地缓冲外部冲击,防止书角发生形变。...

    行业文档-设计装置-圆角成册说明书刀切机.zip

    这通常包括精密的刀具和调整机构,能够精确控制切割的角度、深度和一致性,确保每一本书的圆角都符合预设的标准。切割过程可能涉及到自动或半自动的操作,通过数字化控制,实现高效、准确的批量生产。 在设计装置...

    css3炫酷圆形图片鼠标滑过特效

    - **翻页效果**:模拟书页翻页动画,可能使用了`transform: skew()`和`rotate()`结合,以及`clip-path`来切割形状。 - **3D旋转**:利用`transform: rotate3d()`在三维空间内旋转元素,产生立体旋转效果。 - **...

    行业文档-设计装置-一种改进的封面方便固定的笔记本.zip

    然而,在使用笔记本的过程中,我们常常会遇到一些问题,例如纸页容易滑落、不易翻页、封面容易磨损等。这些问题不仅影响了用户的使用体验,也降低了笔记本的使用寿命。因此,设计出一种既实用又美观的改进型封面,以...

    多种图片切换方式

    4. **翻页效果**:模拟实体书翻页,适合用于相册展示。 5. **网格切换**:图片以网格形式排列,点击某一张后以放大效果展示。 6. **3D旋转**:利用CSS3的3D变换,使图片在切换时产生立体旋转效果。 7. **平移切换...

    行业文档-设计装置-动态立体书.zip

    动态立体书的核心理念是打破传统阅读的二维限制,通过巧妙的结构设计和视觉效果,使读者能够通过翻页或手动操作感受到书中的角色、场景仿佛活了起来。这种设计理念旨在激发读者的想象力,增强对故事内容的理解和记忆...

    Android 3D相册图片滑动+倾斜+放大+倒影处理源码.rar

    1. **3D滑动效果**:在Android中,通过重写`ViewPager`或者使用第三方库如`FragmentPager`,可以实现3D翻页效果。通过改变页面之间的转场动画,模拟3D空间中的翻页,可以创建出更真实的浏览体验。这通常涉及到矩阵...

    行业文档-设计装置-圆形角书本.zip

    3. **工艺技术**:制作圆形角书本可能涉及到特殊的裁切技术,如圆角切割机的运用,以精确地切割出理想的弧度。此外,装订方式也会影响书本的整体结构和耐久性,如无线胶装、锁线胶装等。 4. **印刷工艺**:设计中的...

Global site tag (gtag.js) - Google Analytics