zoukankan
html css js c++ java
WPF与缓动(四) 弧形缓动
WPF与缓动(四) 弧形缓动
周银辉
弧形缓动就是其缓动曲线为一段圆弧, 如何我们假设圆弧上的点的斜率为速度的话,那么可以想像其速度的变化多么具有戏剧性, 其加速或减速来得很突然, 与5次缓动差不多.
参考以下代码:
//
圆形缓动
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;
double
t
=
value
*
this
.Duration.TimeSpan.Ticks;
double
d
=
this
.Duration.TimeSpan.Ticks;
//
加速
//
return delta * (1-Math.Sqrt(1-(t/=d)*t)) + from;
//
减速
//
return delta * Math.Sqrt(1 - (t = t / d - 1) * t) + from;
//
先加速,后减速
if
((t
/=
(d
/
2
))
<
1
)
{
return
delta
/
2
*
(
1
-
Math.Sqrt(
1
-
t
*
t))
+
from;
}
return
delta
/
2
*
(Math.Sqrt(
1
-
(t
-=
2
)
*
t)
+
1
)
+
from;
}
下载Demo
查看全文
相关阅读:
四则运算---3
四则运算---2
四则运算---1
我的软工实践总结
用例图练习..................................................
第四次作业——个人作业——软件案例分析
第三次作业——将排课Excel导入系统
第二次作业——结对项目之需求分析与原型模型设计
软工实践练习一(个人)----将Androidstudio的项目共享到github
第一次作业---安卓开发工具Android studio发展演变
原文地址:https://www.cnblogs.com/zhouyinhui/p/762365.html
最新文章
项目冲刺第五天
项目冲刺链接汇总
CVPR2020_Improved Few-Shot Visual Classification
MOSSE_Visual Object Tracking using Adaptive Correlation Filters学习笔记
ubuntu——caffe配置deeplab
Leetcode——58.最后一个单词的长度
Leetcode——66.加一
spatial-temporal information extraction典型方法总结
Leetcode——53.最大子序和
Leetcode——32.最长有效括号【##】
热门文章
Leetcode——171.Excel表列序号【水题】
Leetcode——258.各位相加【水题】
软件工程实践总结
用例图练习
第六次作业
第四次作业——个人作业——软件案例分析
第五次作业——团队项目——需求规格说明书
团队展示
第三次作业-结对编程
一个老师的迫切需求(第二次作业)
Copyright © 2011-2022 走看看