【技术实现步骤摘要】
一种弧线变速运动的变速值的生成算法
本专利技术涉及应用的加载动画
,具体说是一种弧线变速运动的变速值的生成算法。
技术介绍
现有的应用程序(例如App),在打开运行时,总会看到一个加载动画页面,以便在等待加载的过程中,用户可以知晓应用程序正在工作、加载的进度等信息。常见的加载动画页面,有的是呈现一张静态图片,有的是呈现一组图片实现动画效果,有的是呈现一段短视频实现动画效果,为了凸显个性化,丰富加载动画页面的功能及动画效果,有必要对加载动画页面进行优化、再设计。根据公司目前的开发计划,拟实现一种模拟能量守恒双摆球的动画效果,该动画效果作为新版App的加载动画页面。所述模拟能量守恒双摆球动画效果中,包括沿水平方向依次排列的多颗小球(通常是奇数个),这些小球中,最左侧和最右侧的小球交替的被弹出并回落,小球的移动轨迹为弧线,且移动速度不恒定,故需要专门设计相应的轨迹移动算法。在算法设计中,由于小球的移动轨迹为弧线,且移动速度不恒定,因此,如何提供相应的控制值(变速值)实现对小球轨迹的移动速度控制,是关键算法之一。
技术实现思路
针对现有技术中存在的缺陷,本专利技术的目的在于提供一种弧线变速运动的变速值的生成算法,通过FastOutSlowInInterpolator产生变速值,作为interpolator插补器的属性,在使用动画Animation或者AnimationSet的时候,使用这个属性来修饰动画运动的速率,实现了弧线变速运动的变速值的生成及控制,算法简洁,易于使用,提高开发效率。为达到以上目的,本专利技术采取的技术方案是:一种弧线变速运动的变速值的生成算 ...
【技术保护点】
1.一种弧线变速运动的变速值的生成算法,其特征在于,包括如下步骤:通过FastOutSlowInInterpolator产生变速值,所述FastOutSlowInInterpolator指贝塞尔曲线的插补器FastOutSlowInInterpolator(),运动规律是由慢到快再到慢,将变速值赋值给MATERIAL_INTERPOLATOR,作为interpolator插补器的属性,限定MATERIAL_INTERPOLATOR为private static final Interpolator,在使用动画Animation或者AnimationSet的时候,使用这个属性来修饰动画运动的速率,实现了弧线变速运动的变速值的生成及控制,在FastOutSlowInInterpolator产生中调用computeRender方法,通过计算终点角度mEndDegrees 和起点角度mStartDegrees的差值,来得出旋转的角度mSwipeDegrees,也就是变化的角度,计算时,判断Math.abs(mEndDegrees ‑ mStartDegrees) > 0是否成立,成立则mSwi ...
【技术特征摘要】
1.一种弧线变速运动的变速值的生成算法,其特征在于,包括如下步骤:通过FastOutSlowInInterpolator产生变速值,所述FastOutSlowInInterpolator指贝塞尔曲线的插补器FastOutSlowInInterpolator(),运动规律是由慢到快再到慢,将变速值赋值给MATERIAL_INTERPOLATOR,作为interpolator插补器的属性,限定MATERIAL_INTERPOLATOR为privatestaticfinalInterpolator,在使用动画Animation或者AnimationSet的时候,使用这个属性来修饰动画运动的速率,实现了弧线变速运动的变速值的生成及控制,在FastOutSlowInInterpolator产生中调用computeRender方法,通过计算终点角度mEndDegrees和起点角度mStartDegrees的差值,来得出旋转的角度mSwipeDegrees,也就是变化的角度,计算时,判断Math.abs(mEndDegrees-mStartDegrees)>0是否成立,成立则mSwipeDegrees=mEndDegrees–mStartDegrees,设mRotationIncrement是新的旋转角度增量,mOriginRotationIncrement是上一次循环角度增量,MAX_ROTATION_INCREMENT是每次旋转最大增加角度值,则:mRotationIncrement=mOriginRotationIncrement+(MAX_ROTATION_INCREMENT*renderProgress),即:新的旋转角度增量=上一次循环角度增量+(每次旋转最大增加角度值*当前变化的进度),计算画布旋转角度:((一次循环的角度/循环总次数)*当前变化的进度)+(一次循环的角度*(当前循环位置/循环总次数))。2.如权利要求1所述的弧线变速运动的变速值的生成算法,其特征在于:终点角度mEndDegrees和起点角度mStartDegrees通过以下步骤计算:判断当前变化的进度renderProgress小于等于起点绘制结束时进度START_TRIM_DURATION_OFFSET,则:起点移动进度startTrimProgress赋值为(renderProgress)/(1.0f-START_TRIM_DURATION_OFFSET),即:判断当目前变化进度小于起点结束进度时,起点移动进度=当前变化进度/起点变化进度,起点应该移动后的新角度mStartDegrees赋值为mOriginStartDegrees+MAX_SWIPE_DEGREES*MATERIAL_INTERPOLATOR.getInterpolation(startTrimProgress),即:起点应该移动后的新角度=原角度+一次绘制角度*转换后起点应该移动的进度,原角度mOriginStartDegrees即指初始角度,一次绘制角度MAX_SWIPE_DEGREES即...
【专利技术属性】
技术研发人员:孙征,
申请(专利权)人:北京酷我科技有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。