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 相关文章推荐
Google Map API更新实现用户自定义标注坐标
Jul 29 Javascript
JS中attr和prop属性的区别以及优先选择示例介绍
Jun 30 Javascript
《JavaScript DOM 编程艺术》读书笔记之JavaScript 语法
Jan 09 Javascript
JQuery实现级联下拉框效果实例讲解
Sep 17 Javascript
jquery悬浮提示框完整实例
Jan 13 Javascript
利用js的闭包原理做对象封装及调用方法
Apr 07 Javascript
JS实现禁止用户使用Ctrl+鼠标滚轮缩放网页的方法
Apr 28 Javascript
two.js之实现动画效果示例
Nov 06 Javascript
jQuery实现遍历XML节点和属性的方法示例
Apr 29 jQuery
jquery.onoff实现简单的开关按钮功能(推荐)
May 24 jQuery
探秘vue-rx 2.0(推荐)
Sep 21 Javascript
vue slot与传参实例代码讲解
Apr 28 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
第五节 克隆 [5]
2006/10/09 PHP
PHP基础教程(php入门基础教程)一些code代码
2013/01/06 PHP
PHP判断IP并转跳到相应城市分站的方法
2015/03/25 PHP
再谈PHP中单双引号的区别详解
2016/06/12 PHP
PHP页面输出搜索后跳转下一页的处理方法
2016/09/30 PHP
php压缩文件夹最新版
2018/07/18 PHP
php对象工厂类完整示例
2018/08/09 PHP
Ext中下拉列表ComboBox组件store数据格式用法介绍
2013/07/15 Javascript
Jquery.addClass始终无效原因分析
2013/09/08 Javascript
js获取多个tagname的节点数组
2013/09/22 Javascript
node.js中的Socket.IO使用实例
2014/11/04 Javascript
初识Node.js
2015/03/20 Javascript
PHP+mysql+Highcharts生成饼状图
2015/05/04 Javascript
js实现时间显示几天前、几小时前或者几分钟前的方法集锦
2015/05/29 Javascript
详解Javascript事件驱动编程
2016/01/03 Javascript
jQuery实现拖动效果的实例代码
2017/06/25 jQuery
JavaScript寄生组合式继承实例详解
2018/01/06 Javascript
浅析微信扫码登录原理(小结)
2018/10/29 Javascript
微信小程序使用二次贝塞尔曲线画波浪
2018/12/25 Javascript
ant design中upload组件上传大文件,显示进度条进度的实例
2020/10/29 Javascript
python使用PyV8执行javascript代码示例分享
2013/12/04 Python
Python的垃圾回收机制深入分析
2014/07/16 Python
Python中title()方法的使用简介
2015/05/20 Python
在Python操作时间和日期之asctime()方法的使用
2015/05/22 Python
Python 使用PIL numpy 实现拼接图片的示例
2018/05/08 Python
python3 爬取图片的实例代码
2018/11/06 Python
Python中collections模块的基本使用教程
2018/12/07 Python
Python常用的json标准库
2019/02/19 Python
Django 框架模型操作入门教程
2019/11/05 Python
调用其他python脚本文件里面的类和方法过程解析
2019/11/15 Python
jupyter使用自动补全和切换默认浏览器的方法
2020/11/18 Python
美国正宗设计师眼镜在线零售商:EYEZZ
2019/03/23 全球购物
超市重阳节活动方案
2014/02/10 职场文书
大学生个人求职信例文
2014/07/07 职场文书
新闻稿怎么写
2015/07/18 职场文书
小学生节约用水倡议书
2019/08/12 职场文书