three.js实现3D视野缩放效果


Posted in Javascript onNovember 16, 2017

首先,不再废话了,什么是three.js,是干什么的,知道的就是知道,不知道的就百度吧。

小编为大家推荐一篇:Three.js快速入门教程

昨儿发现three.js中的3D视野的缩小和放大效果可以用照相机的远近焦来实现。

three.js实现3D视野缩放效果

缩小后:

three.js实现3D视野缩放效果

这里采用的是透视照相机:

//照相机配置
  var fov = 40;//拍摄距离
  var near = 1;//最小范围
  var far = 1000;//最大范围
  var camera = new THREE.PerspectiveCamera(fov, window.innerWidth / window.innerHeight, near, far);

在这里可以改变fov的值,并更新这个照相机就可以了。

camera.fov = fov;//fov是变量哦 
camera.updateProjectionMatrix();
renderer.render(scene, camera);

另外:咱们都是习惯用鼠标上下滑轮实现放大缩小效果,so看代码

canvas.addEventListener('mousewheel', mousewheel, false);
    //鼠标滑轮
    function mousewheel(e) {
      e.preventDefault();
      //e.stopPropagation();
      if (e.wheelDelta) { //判断浏览器IE,谷歌滑轮事件
        if (e.wheelDelta > 0) { //当滑轮向上滚动时
          fov -= (near < fov ? 1 : 0);
        }
        if (e.wheelDelta < 0) { //当滑轮向下滚动时
          fov += (fov < far ? 1 : 0);
        }
      } else if (e.detail) { //Firefox滑轮事件
        if (e.detail > 0) { //当滑轮向上滚动时
          fov -= 1;
        }
        if (e.detail < 0) { //当滑轮向下滚动时
          fov += 1;
        }
      }
      camera.fov = fov;
      camera.updateProjectionMatrix();
      renderer.render(scene, camera);
      //updateinfo();
    }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
比Jquery的document.ready更快的方法
Apr 28 Javascript
JQury slideToggle闪烁问题及解决办法
Jul 05 Javascript
JavaScript+html5 canvas绘制缤纷多彩的三角形效果完整实例
Jan 26 Javascript
jQuery Mobile 触摸事件实例
Jun 04 Javascript
jQuery插件Flexslider实现图片轮播、图文结合滑动切换效果
Apr 16 Javascript
你真的了解BOM中的history对象吗
Feb 13 Javascript
微信小程序-getUserInfo回调的实例详解
Oct 27 Javascript
AngularJS 表单验证手机号的实例(非必填)
Nov 12 Javascript
JavaScript实现创建自定义对象的常用方式总结
Jul 09 Javascript
vue-router传递参数的几种方式实例详解
Nov 13 Javascript
前端路由&amp;webpack基础配置详解
Jun 10 Javascript
vue @click.native 绑定原生点击事件
Apr 22 Vue.js
three.js中3D视野的缩放实现代码
Nov 16 #Javascript
js的函数的按值传递参数(实例讲解)
Nov 16 #Javascript
React/Redux应用使用Async/Await的方法
Nov 16 #Javascript
详谈DOM简介及节点、属性、查找节点的方法
Nov 16 #Javascript
图片加载完成再执行事件的实例
Nov 16 #Javascript
详解React 在服务端渲染的实现
Nov 16 #Javascript
Angular 5.0 来了! 有这些大变化
Nov 15 #Javascript
You might like
php.ini中文版
2006/10/09 PHP
一个php作的文本留言本的例子(六)
2006/10/09 PHP
PHP获取数组的键与值方法小结
2015/06/13 PHP
php制作基于xml的RSS订阅源功能示例
2017/02/08 PHP
PHP进阶学习之反射基本概念与用法分析
2019/06/18 PHP
Laravel 错误提示本地化的实现
2019/10/22 PHP
IE、FF浏览器下修改标签透明度
2014/01/28 Javascript
JavaScript实现仿新浪微博大厅和腾讯微博首页滚动特效源码
2015/09/15 Javascript
JavaScript中自带的 reduce()方法使用示例详解
2016/08/10 Javascript
AngularJS ng-template寄宿方式用法分析
2016/11/07 Javascript
微信小程序教程之本地图片上传(leancloud)实例详解
2016/11/16 Javascript
Agularjs妙用双向数据绑定实现手风琴效果
2017/05/26 Javascript
简单快速的实现js计算器功能
2017/08/17 Javascript
JavaScript实现正则去除a标签并保留内容的方法【测试可用】
2018/07/18 Javascript
vue.js template模板的使用(仿饿了么布局)
2018/08/13 Javascript
React性能优化系列之减少props改变的实现方法
2019/01/17 Javascript
[01:37]全新的一集《真视界》——TI7总决赛
2017/09/21 DOTA
Python实现的简单算术游戏实例
2015/05/26 Python
python3.0 模拟用户登录,三次错误锁定的实例
2017/11/02 Python
Python实现句子翻译功能
2017/11/14 Python
django表单实现下拉框的示例讲解
2018/05/29 Python
Python实现将字符串的首字母变为大写,其余都变为小写的方法
2019/06/11 Python
python pandas时序处理相关功能详解
2019/07/03 Python
python Dijkstra算法实现最短路径问题的方法
2019/09/19 Python
Python一行代码解决矩阵旋转的问题
2019/11/30 Python
Django ForeignKey与数据库的FOREIGN KEY约束详解
2020/05/20 Python
django中嵌套的try-except实例
2020/05/21 Python
Django数据库迁移常见使用方法
2020/11/12 Python
电子信息毕业生自荐信
2013/11/16 职场文书
危货运输企业安全生产责任书
2014/07/28 职场文书
2014年党员干部四风问题自我剖析材料
2014/09/29 职场文书
二审答辩状范文
2015/05/22 职场文书
房产电话营销开场白
2015/05/29 职场文书
如何制定销售人员薪酬制度?
2019/07/09 职场文书
详解RedisTemplate下Redis分布式锁引发的系列问题
2021/04/27 Redis
源码解读Spring-Integration执行过程
2021/06/11 Java/Android