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;
}
点击这里下载
源代码
查看全文
相关阅读:
Mix and Build(简单DP)
Is It A Tree?(并查集)
Paths on a Grid(简单组合数学)
Code(组合数学)
Round Numbers(组合数学)
Inviting Friends(二分+背包)
Communication System(dp)
Human Gene Functions
Pearls
敌兵布阵(线段树HDU 1166)
原文地址:https://www.cnblogs.com/zhouyinhui/p/758897.html
最新文章
Exact Change(背包HDU2753)
Area(Pick定理POJ1256)
Pie(二分POJ3122)
Expanding Rods(二分POJ1905)
River Hopscotch(二分POJ3258)
FZU 2105 Digits Count(线段树)
Pupu(快速幂取模)
逆序数还原(FZU)
R2D2 and Droid Army(多棵线段树)
Maximum Value(哈希)
热门文章
Monthly Expense(二分查找)
C Looooops(扩展欧几里得)
Sumdiv(快速幂+约数和)
Semi-prime H-numbers(筛法)
(POJ2635)The Embarrassed Cryptographer(大数取模)
Boring count(字符串处理)
I'm Telling the Truth(二分图)
Gift Hunting(分组背包)
CRB and String
CRB and His Birthday(背包)
Copyright © 2011-2022 走看看