`
xhload3d
  • 浏览: 208078 次
社区版块
存档分类
最新评论

透过HT for Web 3D看动画Easing函数本质

阅读更多

http://www.hightopo.com/guide/guide/plugin/form/examples/example_easing.html

50年前的这个月诞生了BASIC这门计算机语言,回想起自己喜欢上图形界面这行,还得归功于当年在win98下用QBASIC照葫芦画瓢敲了一段绘制奥运五环的代码,当带色彩的奥运五环呈现在自己面前时我已知道自己这辈子要走的路了。在这个忘本逐新的年代不见多少媒体提及这影响了几代人的BASIC语言的50年庆了。

如今消费者对用户体验的高要求,以远不能以静态平面图形打动人心,动画已是衡量前端产品用户体验不可忽视的重要因素,最近Facebook开源的Pop动画框架已发了iOS业界极大的关注,其实Apple早在Cocoa和Cocoa Touch框架内置了动画框架Core Animation,HTML5的CSS3也内置了动画机制,不知是自己脑子不好似还是HTML5接口提供的不够友好,久不用总会忘只能考写了个小例子帮自己记忆。

基于HT for Web的自动布局动画例子视频

 

基于HT for Web的3D机房动画例子视频

动画的原理比较容易理解:在一定的时间间隔内,不断改变颜色、大小或角度等图形界面参数,直到最终的目标参数结果,整个过程人眼观察起来就是个动画的效果。但提供一套完善的动画框架是一项超出大部分一般人脑子的系统工程,我很喜欢阅读《技术奇异点》的博客,他的《Core Animation 初探》对OS X的Core Animation进行了深入的思考。

一套好的动画框架是模型接口、用户体验和运行性能等多方面极难得到平衡的挑战,即使是如今各种GUI平台提供的主流动画框架这么多年了依然问题不少,不是具体场景的性能问题,就是多组件同时动画是莫名其妙各种bug,加上前面提到的我脑子不好使,实在记不住各种平台提供五发八门接口,因此我喜欢自己通过Model来达到控制View的动画效果,这样在动画过程改变哪些属性,改变的每个动画帧改变的幅度,动画之前之后的各种事件处理,多动画的并行还是串行处理一切都可以在自己的掌控之中。

最早接触到Easing概念是学Flash/Flex时接触到的这里demo,这个demo第一次给我对Easing直观的感受,如今基于HTML5的可以参考 http://easings.net/,Easing函数的作用在于通过定义不同曲线的数据公式方式,来描述每一帧回调时需要改变图形参数属性的幅度,从而达到均匀、先快后慢、先慢后快,甚至先超出起始值和结束值再慢慢恢复的各种动画特效,如今有很多工具提供了可视化编辑Easing曲线函数的功能,待会介绍的例子将会枚举一堆常用的Easing函数供大家参考应用,先上张图和视频开门见山让大家体验下基于WebGL的3D下,如何更直观的展示不同Easing动画效果

http://www.hightopo.com/guide/guide/plugin/form/examples/example_easing.html

该例子近20种动画Easing类型分布在不同的箭头跑道上,当点击控制面板的animation按钮则开始启动动画,动画过程箭头将随着Easing的函数的逻辑决定前进的速度,这样多组动画同时进行时刻直观的对不同动画效果进行比较。箭头的颜色也随着前进距离逐渐由白变红,当达到终点时完全变红。

示例还借助了3D的空间新轴线,在垂直轴方向动态用曲线表示Easing函数在当前时间点的函数值,因此大家可以直观的体验到Easing函数曲线的动态变化过程,同时曲线段的颜色也根据该时间段箭头的前进距离由白变红。

右侧控制面板上端是HTTableView表格组件,通过表格的CheckMode可勾选需要显示的Easing函数类型,可点击表头全部选中或者全部取消,或逐行控制具体特效的是否可见,下端HT拉条组件的frames为帧数,代表整个过程要跑多少帧,interval代表每一帧的时间间隔,增加frames会让曲线更均匀,增减interval可控制动画的快慢程度。

以下HT for Web的3D例子为在Android平板上运行的效果,可勾选部分类型更容易直观观察具体的Easing函数运行效果:

整个例子的运行效果给我感觉就像这个社会各式各样的人生路,大家都逃不过出生和死亡,大家的起点是一样的,终点的死亡也是谁也躲不过的,但不同人可以走出不同的人生曲线,easeNone:function(t){return t}这条是均匀的直线,给我感觉就是公务员之路,没有大起大落,每年都会收入更好,但快不来只能慢慢熬;elasticOut是最顺利的年少就达到事业巅峰,当然后续也没啥追求一路高位稳定等死;elasticOut是大器晚成类型,一路平平毫无建树,终老之前也有幸快速达到了目的地;其他波折动荡的类型如创业人生,每天你都不知道明天会发生什么,你可能一直坐着过山车,时而在低谷时而在顶峰,不过怎么样只要坚持继续前进人人都会达到理想的终点:

Everything will be okay in the end. If it’s not okay, it’s not the end.

http://www.hightopo.com/guide/guide/plugin/form/examples/example_easing.html

 

2
1
分享到:
评论

相关推荐

    HT for Web基础动画介绍

    【标题】"HT for Web基础动画介绍"涉及的是在Web开发中使用HT(Hightopo)框架进行动画制作的相关知识。HT for Web是一款基于HTML5的2D/3D图形和交互开发工具,广泛应用于数据可视化、模拟仿真、工业互联网等领域。...

    简单动画 web开发,动画函数的封装使用.zip

    "简单动画 web开发,动画函数的封装使用"这个主题涵盖了如何在网页中创建动画以及如何有效地管理这些动画的实现方式。下面,我们将深入探讨这一领域的核心知识点。 一、CSS动画 1. CSS3 Transform:变换属性允许...

    easing动画运动效果.zip

    变加速运动可以让动画看起来更自然,就像物理世界中的物体运动一样,有启动、加速、减速和停止的过程。缓冲效果则常用于模拟现实世界中的弹性,比如弹簧或者物体落地后的反弹。 在实际项目中,开发者可能会使用现有...

    Unity Dotween缓冲动画示例easing_demo-离线文件 ease type

    在"Dotween缓冲动画easing_demo-离线版"这个压缩包中,你将找到一个离线示例,这个示例演示了各种缓冲类型的动画效果。通过运行和查看这个示例,你可以直观地了解每个缓冲类型的差异,并从中选择最适合你的项目的...

    jquery.easing动画插件

    `jquery.easing.js`是基于jQuery的一款轻量级动画插件,它扩展了jQuery的`.animate()`方法,增加了多种缓动函数(easing functions),这些函数能够改变元素在动画过程中的速度变化,创造出各种不同的视觉体验。...

    jQuery easing动画运动效果.zip

    通过传递一个特定的easing函数作为animate()的选项参数,我们可以改变动画的速度曲线,创建出各种不同的视觉体验。 jQuery默认提供了几种内置的easing效果: 1. `swing`:这是jQuery的默认缓动效果,模仿了传统物理...

    jquery.easing.js_jquery.easing.js_passageztr_

    它提供了一系列的缓动函数(easing functions),这些函数可以改变动画的速度曲线,从而创造出更加平滑、自然或个性化的过渡效果。在标准的jQuery动画中,只有"swing"和"linear"两种缓动方式,而Easing插件则增加了...

    jquery的easing插件

    `animate()` 方法接受一个包含CSS属性的对象、一个完成动画后的回调函数、一个时间间隔(以毫秒为单位)以及一个称为“easing”的选项。 **二、默认的easing效果** 默认情况下,jQuery提供了两种easing效果:`...

    HTML5 canvas 3D文字云动画.zip

    此外,为了使动画更加流畅和自然,开发者可能还会利用缓动函数(easing functions)来控制文字移动的速度和轨迹,使其在运动过程中有加减速、弹性或者其他复杂的动态行为。 在实际应用中,这样的效果可以用于网站的...

    jQuery插件---easing..rar

    jQuery插件easing是Web开发中的一个强大工具,它扩展了jQuery的核心动画功能,提供了更加丰富和精细的动画过渡效果。在Flash制作中, easing效果常用于创建平滑、动态的运动路径,而现在,借助jQuery easing插件,...

    前端项目-jquery-easing.zip

    例如,"easeInQuad"函数会让动画从慢到快开始,"easeOutQuad"则会让动画从快到慢结束,"easeInOutQuad"则在开始和结束时缓慢,中间快速。通过这些不同的缓动模式,开发者可以轻易地创造出各种动感效果,如弹跳、摇摆...

    easing动画运动效果特效代码

    Easing,中文常被称为“缓动”或“缓动函数”,是一种调整动画速度曲线的技术,使得动画在起始、结束或者过程中呈现出不同的速度变化。在传统动画中,物体通常以恒定速度移动,但在现实生活中,物体的运动往往有加...

    C# 缓动动画类库(c# Easing animation) 及winform使用示例

    C# 缓动动画类库(c# Easing animation) 及winform使用示例 文章详见: https://blog.csdn.net/surfsky/article/details/139511866 var ani = new Animator() .AddPath(AnimationType.ExponentialEaseOut, 100, 300...

    jquery_easing_js

    jQuery Easing是由Glen Maddern开发的一个插件,它为jQuery的动画函数提供了更多的缓动(easing)选项。默认情况下,jQuery只提供了两种缓动效果:`linear`和平滑渐变的`swing`。Easing插件则极大地丰富了这一领域,...

    jquery.easing.js 1.3 动画效果扩展插件.zip

    这个插件为jQuery的动画效果提供了更多的缓动函数(easing functions),使动画更加平滑和动态。 **1. jQuery Easing插件介绍** `jquery.easing.js 1.3` 是一个专门为jQuery设计的扩展插件,它添加了多种自定义缓...

    jQuery Easing div切换效果的例子

    jQuery Easing是一个非常实用的工具,它扩展了jQuery的核心动画功能,提供了丰富的缓动函数,使得过渡效果更加平滑、动态,为网页增添视觉吸引力。 首先,我们需要理解jQuery的基本动画原理。在jQuery中,`.animate...

    jquery插件之easing使用

    具体介绍 jquery插件之easing使用,适合移动开发的js使用

    7个异常精美的Web前端动画效果的实现(三)

    4. **jQuery插件**:JQUERY拥有丰富的插件库,如`jQuery easing`,提供了多种缓动函数,使动画效果更加自然。还有`jQuery Transit`这样的插件,它扩展了JQUERY的动画功能,支持更多复杂的变形效果。 5. **响应式...

    在Unity引擎中使用Easing Function制作动画2

    在Unity引擎中,Easing Function是一种强大的工具,用于创建流畅且具有表现力的动画效果,尤其是在GUI和游戏交互中。Easing Function可以帮助开发者避免单调的线性运动,转而实现各种复杂的非线性动画,比如缓入缓出...

    js-animation-easing:具有缓动功能的 JS 动画队列。 使用二次方程计算缓入或缓出的动画位置

    它的调用方式类似于调用 jQuery 动画函数的方式。 只需获取HTMLElement的引用,然后执行以下操作即可。 /** * This example, grabs 3 absolute positioned elements * then animates them at the same time, * but ...

Global site tag (gtag.js) - Google Analytics