WPF与缓动(三) 指数缓动

指数缓动给人的感觉是加速度很大.

它的原始公式来自:P(t) = Math.Pow(2, 10*(t-1));

与其他缓动一样,我在这里就直接给出其核心代码了:

//指数缓动
protected override double GetCurrentValueCore(double defaultOriginValue, double defaultDestinationValue, AnimationClock animationClock)
{
 double from = (this.From==null?defaultDestinationValue:(double)this.From);
 double to = (this.To==null?defaultOriginValue:(double)this.To);
 double delta = to - from;
 double value = animationClock.CurrentProgress.Value;

 //加速
 //return delta * Math.Pow(2, 10 * (value - 1)) + from;

 //减速
 //return delta * (-Math.Pow(2, -10 * value) + 1) + from;

 //先加速,后减速
 double t = value * this.Duration.TimeSpan.Ticks;
 double d = this.Duration.TimeSpan.Ticks;
 if ((t/=(d/2)) < 1)
 {
  return delta / 2 * Math.Pow(2, 10 * (t - 1)) + from;
 }
 return delta / 2 * (-Math.Pow(2, -10 * --t) + 2) + from;

}

本文配套源码

时间: 2024-08-01 14:23:10

WPF与缓动(三) 指数缓动的相关文章

WPF与缓动(四) 弧形缓动

弧形缓动就是其缓动曲线为一段圆弧, 如何我们假设圆弧上的点的斜率为速度的话,那么可以想像其速度的变化多么具有戏剧性, 其加速或减速来得很突然, 与5次缓动差不多. 参考以下代码: //圆形缓动 protected override double GetCurrentValueCore(double defaultOriginValue, double defaultDestinationValue, AnimationClock animationClock) { double from = (

爱奇艺动漫嘉年华与中国动漫指数

11月24日,由爱奇艺主办,宁波市政府大力支持的2012动漫嘉年华暨动漫产业高峰论坛在浙江宁波举办,文化部文化产业司副司长高政, 浙江省文化厅副厅长田宇原,宁波市副市长张明华,爱奇艺创始人.CEO龚宇,中国传媒大学副校长廖祥忠,湖南金鹰卡通有限公司董事长雷瑛等重要嘉宾共同出席峰会并发表讲话.在业界专家及近千名动漫爱好者的见证下,爱奇艺隆重发布动漫行业首个融百度指数.用户覆盖.观看时长为一体的综合评价体系"中国动漫指数".     "中国动漫指数" 是爱奇艺基于其覆盖

如何做好产品动效系列:动效与品牌设计原则

如 何做好产品动效系列:动效与品牌设计原则 时间:2014-11-14 09:46 来源:设计达人 作者:佚名 一个新的设计风格的确立一定会提出他特 有的设计原则.而如今设计原则越来越多的关注到了动效的定义.甚至在Android L的Material Design中直接将动效写入的设计原则中:Motion provides meaning (动画表达含义).这里我们就通过一些业界成熟案例来简单说明下动效是怎么在设计原则的基础上定义出来的. 首先,我们看下iOS7上的案例.众所周知,iOS7相对于

微信上线的“抢红包”火爆春节“指尖动了”钱没动

新华社记者 毛伟豪 岳瑞芳 微信上线的"抢红包"火爆春节,在制造话题的同时,迅速扩大了微信支付的用户群.微信理财通趁势而上,成为互联网金融新晋"吸金大户".但部分银行限制其交易额度,截住储户资金流向,引发投资者的不满与质疑. "指尖动了"钱没动 1月29日,沈阳市民刘女士登录微信理财通,看到理财通7天年化收益率将近7.4%,比自己之前购买的余额宝收益还高,于是打算把钱转账到理财通上面. "转钱时才发现,绑定了理财通的工行卡每天只能转出1

天野喜孝作品登陆台州动漫大道启动动漫艺术展

2010台州(温岭)首届国际动漫节即将在国庆长假和广大动漫爱好者见面,由动漫大道(中国)发起,温岭动漫大道文化传播有限公司承办的本届动漫节,以"举办一届具有趣味性.参与性.综合性的地区动漫艺术活动,塑造一个地区性的动漫活动品牌,打造一个地区动漫爱好者的展示和交流盛会,丰富青少年的课余文化生活,带动台州地区动漫文化的发展,同时也促进台州地区文化创意产业的开拓"作为活动宗旨.四大版块:创意集市.创意摄影展.cosplay盛典.动漫平面作品展将带给广大动漫爱好者一个全方位享受的动漫长假. 动

广东动漫城从化动漫产业园全球招商

昨日上午,广东动漫城从化动漫产业园正式开园,并开始全球招商.广东省文化厅相关负责人表示,文化厅将尽一切可能力量进行扶持,希望将该项目打造成全国甚至全世界的动漫航母项目.南都记者高贵彬 刘军实习生刘双 通讯员从宣摄影报道资料广东动漫城从化动漫产业园总投资规模100亿元,经过3年建设,已经完成总部大楼.原创大楼.游戏大楼.教育培训大楼.动漫广场和生活配套等建设项目约20万平方米,全部建成后总建筑面积将达35万平方米.

C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(三)让物体动起来③

第三种方法,DispatcherTimer动画,该类型动画与CompositionTarget动画类似,是基于界面线程的逐帧动画,但他与CompositionTarget动画不同,DispatcherTimer动画可以轻松的进行参数设置: xaml界面代码仍然沿用第一节的,那么接下来我们在后台代码中创建相关对象: Rectangle rect; //创建一个方块作为演示对象 double speed = 5; //设置移动速度 Point moveTo; //设置移动目标 public Wind

JavaScript Tween算法及缓动效果

Flash做动画时会用到Tween类,利用它可以做很多动画效果,例如缓动.弹簧等等. 我这里要教大家的是怎么利用flash的Tween类的算法,来做js的Tween算法,并利用它做一些简单的缓动效果. 实例效果 效果说明 首先大家到这里下载flash的as脚本(建议看看这里的demo),1.0和2.0都可以(里面的算法都一样). 例如打开2.0的可以看到几个as文件,每个文件对应一个Tween效果,分别有(参考里面的说明): Linear:无缓动效果: Quadratic:二次方的缓动(t^2)

[Flash基础理论课10] 缓动效果[Tween类]

返回"Flash基础理论课 - 目录" Tween类,在推出FlashMX时就出现了,允许您轻松地在舞台上移动.缩放和淡入淡出影片剪辑.实质是用于添加AS过渡动画,使用非常的方便. Tween类的使用: Tween类算是一个外部类,所以使用前应先导入: import mx.transitions.Tween; Tween类中easing方法的导入:用easing.*打开整个包,所有方法也都被载入了 import mx.transitions.easing.*; Tween类构造函数中各