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 相关文章推荐
javascript div 遮罩层封锁整个页面
Jul 10 Javascript
javascripit实现密码强度检测代码分享
Dec 12 Javascript
JavaScript重载函数实例剖析
May 13 Javascript
深入理解JavaScript中为什么string可以拥有方法
May 24 Javascript
jQuery EasyUI Draggable拖动组件
Mar 01 Javascript
详解 vue.js用法和特性
Oct 15 Javascript
Nuxt升级2.0.0时出现的问题(小结)
Oct 08 Javascript
webpack打包非模块化js的方法
Oct 24 Javascript
ES6中let、const的区别及变量的解构赋值操作方法实例分析
Oct 15 Javascript
uniapp电商小程序实现订单30分钟倒计时
Nov 01 Javascript
Nuxt.js 静态资源和打包的操作
Nov 06 Javascript
React更新渲染原理深入分析
Dec 24 Javascript
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
ThinkPHP的MVC开发机制实例解析
2014/08/23 PHP
thinkphp文件处理类Dir.class.php的用法分析
2014/12/08 PHP
双冒号 ::在PHP中的使用情况
2015/11/05 PHP
响应鼠标变换表格背景或者颜色的代码
2009/03/30 Javascript
js实现图片放大缩小功能后进行复杂排序的方法
2012/11/08 Javascript
Javascript Boolean、Nnumber、String 强制类型转换的区别详细介绍
2012/12/13 Javascript
输入自动提示搜索提示功能的javascript:sugggestion.js
2013/09/02 Javascript
jquery 删除字符串最后一个字符的方法解析
2014/02/11 Javascript
javascript判断复选框是否选中的方法
2015/10/16 Javascript
javascript实现粘贴qq截图功能(clipboardData)
2016/05/29 Javascript
javascript实现瀑布流动态加载图片原理
2016/08/12 Javascript
原生js验证简洁注册登录页面
2016/12/17 Javascript
vue2.0使用Sortable.js实现的拖拽功能示例
2017/02/21 Javascript
node安装--linux下的快速安装教程
2017/03/21 Javascript
vue子组件使用自定义事件向父组件传递数据
2017/05/27 Javascript
Three.js利用Detector.js插件如何实现兼容性检测详解
2017/09/26 Javascript
如何获取vue单文件自身源码路径
2019/05/06 Javascript
VUE接入腾讯验证码功能(滑块验证)备忘
2019/05/07 Javascript
详解Vue template 如何支持多个根结点
2020/02/10 Javascript
深入浅析vue全局环境变量和模式
2020/04/28 Javascript
Python设计模式编程中解释器模式的简单程序示例分享
2016/03/02 Python
最大K个数问题的Python版解法总结
2016/06/16 Python
python中多层嵌套列表的拆分方法
2018/07/02 Python
python一行sql太长折成多行并且有多个参数的方法
2018/07/19 Python
HTML5重塑Web世界它将如何改变互联网
2012/12/17 HTML / CSS
巴西男士个人护理产品商店:SHOP4MEN
2017/08/07 全球购物
购买一个高级域名:BuyDomains
2018/03/11 全球购物
公司清洁工岗位职责
2013/12/14 职场文书
喝酒检查书范文
2014/02/23 职场文书
学生会干部自我鉴定2014
2014/09/18 职场文书
2014年科室工作总结范文
2014/12/19 职场文书
暂住证明怎么写
2015/06/19 职场文书
2016新教师培训心得体会范文
2016/01/08 职场文书
民警忠诚教育心得体会
2016/01/23 职场文书
Python编程中内置的NotImplemented类型的用法
2022/03/23 Python
详解Vue3使用axios的配置教程
2022/04/29 Vue.js