Threejs中使用Tweenjs实现动画效果和Tweenjs使用说明文档

简介: Threejs中使用Tweenjs实现动画效果和Tweenjs使用说明文档

1,Threejs中使用Tweenjs实现动画


在Threejs中使用Tweenjs很简单,步骤主要是引入Tweenjs,写动画,动画刷新。

如下示例:


<body>
  <div id="dom"></div>
  <script type="text/javascript" src="libs/three.js"></script>
  <script type="text/javascript" src="libs/Tween.min.js"></script>
  <script type="text/javascript">
    var camera;
    var renderer;
    function init() {
      // 创建一个场景,它将包含我们所有的元素,如物体,相机和灯光。
      var scene = new THREE.Scene();
      // 创建一个摄像机,它定义了我们正在看的地方
      camera = new THREE.PerspectiveCamera(65, window.innerWidth / window.innerHeight, 0.1, 10000);
      camera.position.x = 180;
      camera.position.y = 80;
      camera.position.z = 90;
      camera.lookAt(scene.position);
      // 创建一个渲染器并设置大小,WebGLRenderer将会使用电脑显卡来渲染场景
      renderer = new THREE.WebGLRenderer({
        antialias: true,
        logarithmicDepthBuffer: true,
      });
      renderer.setSize(window.innerWidth, window.innerHeight);
      // 在屏幕上显示坐标轴
      var axes = new THREE.AxesHelper(10000);
      scene.add(axes);
      var tween = new TWEEN.Tween({x: 10}).to({x: 3}, 10000)
        .easing(TWEEN.Easing.Elastic.InOut)
        .onUpdate(function(){
          console.log(this.x)
        })
        // .start();
      // 将呈现器的输出添加到HTML元素
      document.getElementById("dom").appendChild(renderer.domElement);
      // 启动动画
      renderScene();
      function renderScene() {
        TWEEN.update();
        // 使用requestAnimationFrame函数进行渲染
        requestAnimationFrame(renderScene);
        renderer.render(scene, camera);
      }
      // 渲染的场景
      renderer.render(scene, camera);
    }
    window.onload = init;
  </script>
</body>


2, Tween.js使用说明文档


Tween.js是一个轻量级的JavaScript库,可以从https://github.com/sole/tween.js/下载。

   通过这个库可以很容易地实现某个属性在两个值之间进行过渡,而且起始值和结束值之间的所有中间值都会自动计算出来,这个过程叫作tweening(补间)。


   

var tween = new TWEEN.Tween({x: 10}).to({x: 3}, 10000)
                .easing(TWEEN.Easing.Elastic.InOut)
                .onUpdate(function(){
                         // update the mesh
                })
                .start();

      上述代码创建了TWEEN.Tween对象,这个对象会确保x属性值在10000毫秒内从10变化到3。通过Tween.js,你还可以指定属性值是如何变化的,是线性的、指数性的,还是其他任何可能的方式(完整列表可以参照http://sole.github.io/tween.js/examples/03_graphs.html)。

       属性值在指定时间内的变化被称为easing(缓动),在Tween.js中你可以使用easing()方法来配置缓动效果;

     

       var tweenBack = new TWEEN.Tween({x: 3}).to({x: 10}, 10000);

       tweenBack.easing(TWEEN.Easing.Elastic.InOut);

       tweenBack.chain(tween);

       tweenBack.start();

     

       这个通过chain()方法可以将这两个补间衔接起来,这样当动画启动之后,程序就会在这两个补间循环。例如:一个动画在另一个动画结束后开始。可以通过chain方法来使实现。

 

       tweenBack.repeat(10);

       如果你想制作循环动画可以使用chain来实现,但是更好的方法是使用repeat方法。它接收一个用于描述你想循环多少次。

 

       tweenBack.yoyo();

       这个函数只在你使用repeat方法是起作用。当它被激活时,tween 的效果类似yoyo效果。该效果是动画会在开始或结束处向反方向反弹。

 

       tweenBack.delay(1000);

       delay方法用于控制动画之间的延时。

 

       TWEEN.add(tween) 和 TWEEN.remove(tween)

       用于向被激活的tweens中添加一个tween,或移除一个tween。

 

       以上方法通常只是在内部使用,一般情况下你了解即可。

目录
相关文章
|
7月前
|
前端开发 JavaScript 开发者
【QML进阶 进度条设计】打造动态弧形进度条特效
【QML进阶 进度条设计】打造动态弧形进度条特效
404 2
|
JavaScript
Fastadmin列表的多图预览(一行代码)
Fastadmin列表的多图预览(一行代码)
390 0
|
2月前
ThreeJs使用tweenjs动画库制作动画
这篇文章介绍了如何在Three.js中使用Tween.js动画库来简化动画制作流程,并演示了如何通过简单的代码实现动画效果。
88 1
ThreeJs使用tweenjs动画库制作动画
|
2月前
|
前端开发 JavaScript API
探索 CSS Houdini:轻松构建酷炫的 3D 卡片翻转动画
本文通过构建一个 3D 翻卡动画深入探讨了 CSS Houdini 的强大功能,展示了如何通过 Worklets、自定义属性、Paint API 等扩展 CSS 的能力,实现高度灵活的动画效果。文章首先介绍了 Houdini 的核心概念与 API,并通过构建一个动态星空背景、圆形进度条以及交互式 3D 翻卡动画的实际示例,展示了如何利用 CSS Houdini 赋予网页设计更多创造力。最后,还演示了如何将这种 3D 翻卡效果集成到公司网站中,提升用户体验。CSS Houdini 的创新能力为网页设计带来了前所未有的灵活性,推动了前端开发迈向新的高度。
39 0
探索 CSS Houdini:轻松构建酷炫的 3D 卡片翻转动画
|
2月前
Threejs用官方提供的编辑器做一个简单的模型
这篇文章介绍了如何使用Three.js内置的编辑器来创建和编辑简单的3D模型,并提供了相应的操作指南。
251 0
|
图形学 开发者
Unity——各种特效的基本使用方法
Unity——各种特效的基本使用方法
379 0
|
数据安全/隐私保护 iOS开发 MacOS
CocosCreator3.8研究笔记(二十四)CocosCreator 动画系统-动画编辑器实操-关键帧实现动态水印动画效果(2)
CocosCreator3.8研究笔记(二十四)CocosCreator 动画系统-动画编辑器实操-关键帧实现动态水印动画效果
140 0
|
数据安全/隐私保护
CocosCreator3.8研究笔记(二十四)CocosCreator 动画系统-动画编辑器实操-关键帧实现动态水印动画效果(1)
CocosCreator3.8研究笔记(二十四)CocosCreator 动画系统-动画编辑器实操-关键帧实现动态水印动画效果
135 0
|
JavaScript 前端开发 vr&ar
60个令人兴奋的ThreeJS网站示例
Three.js是一个JavaScript库,它使在Web上创建3D图形比直接使用WebGL容易得多。Three.js是网络上最受欢迎的3D JavaScript库,很容易上手。因此,在这篇文章中,我将展示一些创意网站的例子,以获得灵感,以使用Three.js JavaScript库创建和动画令人兴奋的基于3D浏览器的图形。
867 0
|
XML 人工智能 搜索推荐
Echarts实战案例代码(5):liquidFill水球组件利用svg path定制你自己的个性化图标动态图
Echarts实战案例代码(5):liquidFill水球组件利用svg path定制你自己的个性化图标动态图
460 0