JavaScript 3D动画库three.js示例篇

本文主要介绍JavaScript 3D动画库three.js示例,关于three.js库基础知识可参见:JavaScript 3D动画库three.js入门篇_cnds123的专栏-CSDN博客

通过script标签来引入three.js,又有两种方式:

一是使用CDN(Content Delivery Network,即内容分发网络),如:

<script src="https://cdn.bootcss.com/three.js/91/three.min.js"></script>

这种方式需要联网才有效。

二是将从Three.js的官方网站下载three.js或three.min.js文件(在下载包的Build文件夹中)复制到适当位置,这儿以存放到HTML文件所在的文件夹的子文件夹js中,如:<script src="js/three.min.js"></script>

这种方式不需要联网。

通过script标签来引入three.js比较简单,适合简单的练习,快速体验

下面给出通过script标签引入three.js的模板:

<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title></title></head>
<!—引入three.js或three.min.js,后者是压缩的,路径根据实际情况写 -->
<script src='js/three.min.js'></script>
<body>
<script>//创建场景,游戏中的事情发生的地方var scene=new THREE.Scene();//创建透视投影相机用来观察取景,视角45度,画幅比例 宽比高等var camera=new THREE.PerspectiveCamera(75,window.innerWidth/window.innerHeight,1, 10000);//创建渲染器,将相机看到的内容绘制到屏幕上var renderer=new THREE.WebGLRenderer();//渲染器canvas宽高设为与窗口一致renderer.setSize(window.innerWidth,window.innerHeight);//将渲染器对应的dom元素添加到body中document.body.appendChild(renderer.domElement);//定义一个几何体(物体)-----↓-------var geometry=new THREE.CylinderGeometry(5,10,30);//定义一种材质,显示为线框var material = new THREE.MeshBasicMaterial({color:0xB3DD,wireframe:true});//网格(Mesh)是用来承载几何模型的一个对象,可以把材料应用到它上面var threeDim =new THREE.Mesh(geometry, material);//把几何模型添加到场景中scene.add(threeDim);//移动相机位置camera.position.z = 80;function render() {//渲染循环,以每秒60次的频率来绘制场景requestAnimationFrame(render);//设置球体绕y轴旋转threeDim.rotation.y += 0.005;renderer.render(scene, camera); //渲染,显示摄像头在屏幕上看到的内容}render();//----------↑----------------</script>
</body>
</html>

保存文件,用浏览器运行之,可见运行效果。

环形示例,源码如下:

<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>环形</title></head>
<!—引入three.js或three.min.js,后者是压缩的,路径根据实际情况写 -->
<script src='js/three.min.js'></script>
<body>
<script>//创建场景,游戏中的事情发生的地方var scene=new THREE.Scene();//创建透视投影相机用来观察取景,视角45度,画幅比例 宽比高等var camera=new THREE.PerspectiveCamera(75,window.innerWidth/window.innerHeight,1, 10000);//创建渲染器,将相机看到的内容绘制到屏幕上var renderer=new THREE.WebGLRenderer();//渲染器canvas宽高设为与窗口一致renderer.setSize(window.innerWidth,window.innerHeight);//将渲染器对应的dom元素添加到body中document.body.appendChild(renderer.domElement);//定义一个几何体(物体)-----↓-------var geometry=new THREE.TorusGeometry(20, 5);//定义一种材质,显示为线框wireframe,平面阴影flatShadingvar material = new THREE.MeshBasicMaterial({color:0xB3DD,wireframe: true});//网格(Mesh)是用来承载几何模型的一个对象,可以把材料应用到它上面var three3D=new THREE.Mesh(geometry, material);//把几何模型添加到场景中scene.add(three3D);//three3D.rotation.set(0.5,0.5,0);//移动相机位置camera.position.z = 80;//运动function render() {//渲染循环,以每秒60次的频率来绘制场景requestAnimationFrame(render);//设置球体绕y轴旋转three3D.rotation.y += 0.005;renderer.render(scene, camera); //渲染,显示摄像头在屏幕上看到的内容}render();//----------↑----------------//renderer.render(scene,camera); //渲染,显示摄像头在屏幕上看到的内容</script>
</body>
</html>

保存文件,用浏览器运行之,可见运行效果:

JavaScript 3D动画库three.js示例篇相关推荐

  1. GSAP动画库入门基础示例:心爱的小摩托

    大家好,在我们谈论网页动画时,我们第一时间会想到用jQuery的animate()方法或者CSS3的animation和transition.今天的这篇文章,我将给大家推荐另一个可选方案,一款专业的W ...

  2. JavaScript星星动画心形js特效

    下载地址 JavaScript实现的星星动画心形特效 dd:

  3. 30个你应该在2023年里使用的JavaScript 动画库

    1.Greensock 地址:https://greensock.com/ 用于构建适用于所有主流浏览器的高性能动画的 JavaScript 库. 2.Velocity.js 地址:http://ve ...

  4. JavaScript 动画库

    动画能使我们以独特的方式讲述故事并传达情感和想法.这里有 30 个 JavaScript 动画库可供我们在今后的项目中使用. 1.Greensock 地址:https://greensock.com/ ...

  5. 30个你应该在2022年里使用的JavaScript 动画库

    点击上方 前端Q,关注公众号 回复加群,加入前端Q技术交流群 英文 | https://javascript.plainenglish.io/30-javascript-animation-libra ...

  6. tween.js一个平滑动效果的js动画库

    tween.js一个平滑动效果的js动画库 tween.js是什么? tween.js是一款可生成平滑动效果的js动画库,允许以平滑的方式修改元素的属性值. tween.js达到什么效果? 它可以通过 ...

  7. js svg语音波动动画_11 个非常受欢迎的 JavaScript 动画库,值得学习!

    1.Three.js 超过46K的星星,这个流行的库提供了非常多的3D显示功能,以一种直观的方式使用 WebGL.这个库提供了. .CSS3D 和 WebGL渲染器,让我们在设备和浏览器之间创建丰富的 ...

  8. JavaScript动画库:Anime.js

    前言 今天简单学习一下JavaScript动画库:Anime.js.官网的介绍是: Anime.js (/ˈæn.ə.meɪ/) 是一个轻量的JavaScript 动画库, 拥有简单而强大的API. ...

  9. anime.js 动画_Anime.js –轻量级JavaScript动画库

    网络动画已经走了很长一段路. 开发人员不仅可以使用CSS / SVG / JS组合制作任何动画,而且还提供数十个免费库来节省时间. 我的最爱之一是Anime.js ,这是一个完全免费的开源JavaSc ...

最新文章

  1. C++编程语言之赋值运算符
  2. 聊聊asp.net中Web Api的使用
  3. 十进制整数(包括负数)和二进制的转换
  4. 如何使用SetTimer MFC 够详细
  5. 2020年中国智能客服行业研究报告
  6. python类和对象介绍_Python开发基础-Day17面向对象编程介绍、类和对象
  7. java利用sigar获取电脑cpu 内存 硬盘使用率等信息
  8. python波形分析_[转载]频谱分析:基于python画出时域频域波形
  9. 为什么亚马逊无货源是国际电商新时代
  10. 为什么国外客户愿意把软件交给印度人来做?
  11. 申请QQ认证空间标志领黄钻90天 明星粉丝团认证空间
  12. 怎么用计算机里的坦克大战,坦克大战怎么使用重坦_坦克大战重坦篇_7k7k坦克大战...
  13. NCRE考试感想 四级嵌入式(下)
  14. 【划词翻译】Ubuntu 实现划词翻译
  15. 如何在 Android 上自定义来电通知?带有代码示例
  16. GNS 3中 Solar Putty 背景颜色修改
  17. 用网线实现两台电脑之间的大文件传输(使用电脑备份)
  18. 谷歌浏览器导入密码设置
  19. 编译原理课程实践——实现一个初等函数运算语言的解释器或编译器
  20. 解决修改hosts文件权限不够的问题

热门文章

  1. 基于ISO13400(DoIP)实现车辆刷写,你知多少?
  2. java发现杯_达内第二届发现杯软件大赛(JAVA A卷)试题.docx
  3. Netapp大概简介(二)
  4. linux p12 转 pem,p12转PEM供golang APNS使用
  5. 天猫精灵 python_天猫精灵连接蓝牙摸索1 关于阿里巴巴蓝牙MESH芯片TG7100B LINUX 开发环境塔建图文说明...
  6. 4款好用的PC端电子书阅读软件,千万别错过
  7. 众昂矿业集团坐拥优质萤石矿产资源,未来可期
  8. logback ERROR *.Interpreter@* - no applicable action for [*], current ElementPath is [*]
  9. Logback configuration error detected的终极解决方案
  10. Linux 测速(使用SpeedTest)