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
查看全文
相关阅读:
继续致歉
向大家致歉!!
访问速度调查
致歉
[功能改进]通过Blog客户端直接发随笔至网站分类
带宽升级公告
创业团队的类型
[讨论]基于.NET的开源论坛软件的选择
调整一下工作的节奏
公告
原文地址:https://www.cnblogs.com/zhouyinhui/p/762365.html
最新文章
RegularExpressions(2) RegularExpressions 支持的正则表达式语法
GdiPlus[55]: 图像(七) 图像编码的参数
GdiPlus[60]: 图像(十二) IGPImageAttributes 的更多方法
GdiPlus[58]: 图像(十) IGPMetafile 特有的属性与方法
GdiPlus[54]: 图像(六) 图像解码与编码
GdiPlus[57]: 图像(九) IGPBitmap 特有的属性与方法
GdiPlus[59]: 图像(十一) IGPImageAttributes 之颜色矩阵(TGPColorMatrix)变换
GdiPlus[53]: 图像(五) 图像的属性(图像元数据)
RegularExpressions(1) 一个 Net 样式的、适用于 Delphi 2009 之后版本的正则表达式组件
GdiPlus[56]: 图像(八) 关于多帧图像
热门文章
欢迎大家针对ORM的话题展开讨论
奇虎光临博客园
搞笑的视频满城尽报新东方
[公告]访问量变大 速度变慢 服务器在购买
Http Compress造成FreeTextBox不能在FireFox中正常运行
致歉
[收藏]Web创业的10条戒律
Visual Studio 2005 SP1 安装问题
致歉
三十岁了
Copyright © 2011-2022 走看看