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

  • 相关阅读:
    分布式日志收集系统: Facebook Scribe之日志收集方案
    20111030 19:37 杨辉三角形 (java)
    pku acm 1833 排列
    俞敏洪郑大演讲经典语句
    自己在inode客户端的大量问题(不断更新中)(20120223 21:24 )
    智力测验:硬币问题
    windows up可以更新但是无法上网的一天挣扎
    hdu1754 I Hate It
    acm算法资源网站
    pku3041 Asteroids
  • 原文地址:https://www.cnblogs.com/zhouyinhui/p/762365.html
Copyright © 2011-2022 走看看