zoukankan
html css js c++ java
WPF与缓动(三) 指数缓动
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;
}
点击这里下载
源代码
查看全文
相关阅读:
C++实现网络寻路
java实现生日相同概率
java实现生日相同概率
Mysql 锁表 for update (引擎/事务)
mysql(for update)悲观锁总结与实践
Select For update语句浅析
Mysql查询语句使用select.. for update导致的数据库死锁分析
数据库中Select For update语句的解析
【转载】支付宝运营架构中柔性事务指的是什么?
互联网支付系统整体架构详解
原文地址:https://www.cnblogs.com/zhouyinhui/p/758897.html
最新文章
怎样加入马云,马化腾,李彦宏的微信
Android学习笔记(十七)——使用意图调用内置应用程序
CSS:CSS Id 和 Class选择器
CSS:CSS 语法
CSS:CSS 简介
CSS:教程
CSS:目录
CSS:百科
CSS template
HTML-参考手册: 键盘快捷键
热门文章
HTML-参考手册: Px、Em 换算工具
HTML-参考手册: HTTP 方法:GET 对比 POST
linux ascii艺术与ansi艺术
java实现硬币方案
java实现硬币方案
java实现硬币方案
C++实现网络寻路
C++实现网络寻路
C++实现网络寻路
C++实现网络寻路
Copyright © 2011-2022 走看看