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 解析json的代码
Dec 16 Javascript
jquery $.ajax相关用法分享
Mar 16 Javascript
JS正则验证邮箱的格式详细介绍
Nov 19 Javascript
JavaScript数组函数unshift、shift、pop、push使用实例
Aug 27 Javascript
AngularJS框架中的双向数据绑定机制详解【减少需要重复的开发代码量】
Jan 19 Javascript
js获取当前页的URL与window.location.href简单方法
Feb 13 Javascript
Vue中添加过渡效果的方法
Mar 16 Javascript
vue  directive定义全局和局部指令及指令简写
Nov 20 Javascript
微信小程序实现圆形进度条动画
Nov 18 Javascript
详解vuex的简单todolist例子
Jul 14 Javascript
Vue3.0 响应式系统源码逐行分析讲解
Oct 14 Javascript
javascript实现简易的计算器
Jan 17 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
memcache一致性hash的php实现方法
2015/03/05 PHP
zend框架实现支持sql server的操作方法
2016/12/08 PHP
9个javascript语法高亮插件 推荐
2009/07/18 Javascript
Javascript 面向对象 重载
2010/05/13 Javascript
javascript中日期转换成时间戳的小例子
2013/03/21 Javascript
JavaScript获取和设置CheckBox状态的简单方法
2013/07/05 Javascript
用JavaScript实现对话框的教程
2015/06/04 Javascript
JS实现的颜色实时渐变效果完整实例
2016/03/25 Javascript
JavaScript事件学习小结(三)js事件对象
2016/06/09 Javascript
前端弹出对话框 js实现ajax交互
2016/09/09 Javascript
微信小程序实现锚点定位楼层跳跃的实例
2017/05/18 Javascript
如何使用JS在HTML中自定义字符串格式化
2017/07/20 Javascript
vuejs使用$emit和$on进行组件之间的传值的示例
2017/10/04 Javascript
react-router4按需加载(踩坑填坑)
2019/01/06 Javascript
Python中的特殊语法:filter、map、reduce、lambda介绍
2015/04/14 Python
Python使用openpyxl读写excel文件的方法
2017/06/30 Python
Python协程的用法和例子详解
2017/09/09 Python
Python读写zip压缩文件的方法
2018/08/29 Python
[机器视觉]使用python自动识别验证码详解
2019/05/16 Python
bluepy 一款python封装的BLE利器简单介绍
2019/06/25 Python
Python异常原理及异常捕捉实现过程解析
2020/03/25 Python
解决Python中报错TypeError: must be str, not bytes问题
2020/04/07 Python
Python xlrd模块导入过程及常用操作
2020/06/10 Python
Python的3种运行方式:命令行窗口、Python解释器、IDLE的实现
2020/10/10 Python
美国领先的家居装饰和礼品商店:Kirkland’s
2017/01/30 全球购物
苏格兰销售女装、男装和童装的连锁店:M&Co
2018/03/16 全球购物
什么是WEB控件?使用WEB控件有哪些优势?
2012/01/21 面试题
学习决心书
2014/03/11 职场文书
《社戏》教学反思
2014/04/15 职场文书
市级文明单位申报材料
2014/05/07 职场文书
个人委托书如何写
2014/09/25 职场文书
在教室放鞭炮的检讨书
2014/09/28 职场文书
2015年惩防体系建设工作总结
2015/05/22 职场文书
刑事附带民事上诉状
2015/05/23 职场文书
mysql脏页是什么
2021/07/26 MySQL
Go语言入门exec的基本使用
2022/05/20 Golang