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 相关文章推荐
新浪的图片新闻效果
Jan 13 Javascript
jQuery 表单验证扩展代码(二)
Oct 20 Javascript
js中匿名函数的创建与调用方法分析
Dec 19 Javascript
js函数与php函数的区别实例浅析
Jan 12 Javascript
jQuery+Ajax+PHP+Mysql实现分页显示数据实例讲解
Sep 27 Javascript
BootStrap的Datepicker控件使用心得分享
May 25 Javascript
一篇文章让你彻底弄懂JS的事件冒泡和事件捕获
Aug 14 Javascript
Angular 容器部署的方法
Apr 17 Javascript
JQuery中的常用事件、对象属性与使用方法分析
Dec 23 jQuery
node.js使用stream模块实现自定义流示例
Feb 13 Javascript
JS数组及对象遍历方法代码汇总
Jun 16 Javascript
让JavaScript代码更加精简的方法技巧
Jun 01 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
浅析php面向对象public private protected 访问修饰符
2013/06/30 PHP
php中session使用示例
2014/03/29 PHP
javascript this用法小结
2008/12/19 Javascript
javascript 客户端验证上传图片的大小(兼容IE和火狐)
2009/08/15 Javascript
基于jquery ajax 用户无刷新登录方法详解
2012/04/28 Javascript
jQuery中对节点进行操作的相关介绍
2013/04/16 Javascript
javascript模块化是什么及其优缺点介绍
2013/09/02 Javascript
如何在父窗口中得知window.open()出的子窗口关闭事件
2013/10/15 Javascript
Jquery对select的增、删、改、查操作
2015/02/06 Javascript
js实现简单选项卡与自动切换效果的方法
2015/04/10 Javascript
jQuery验证插件validation使用指南
2015/04/21 Javascript
纯HTML5制作围住神经猫游戏-附源码下载
2015/08/23 Javascript
输入框点击时边框变色效果的实现方法
2016/12/26 Javascript
实现一个简单的vue无限加载指令方法
2017/01/10 Javascript
vue如何集成raphael.js中国地图的方法示例
2017/08/15 Javascript
详解Nuxt.js Vue服务端渲染摸索
2018/02/08 Javascript
详解Vue取消eslint语法限制
2018/08/04 Javascript
详解Js里的for…in和for…of的用法
2019/03/28 Javascript
vue-cli 3.x配置跨域代理的实现方法
2019/04/12 Javascript
微信小程序实现判断是分享到群还是个人功能示例
2019/05/03 Javascript
Python paramiko模块的使用示例
2018/04/11 Python
python3+PyQt5实现自定义流体混合窗口部件
2018/04/24 Python
flask入门之表单的实现
2018/07/18 Python
python使用wxpy轻松实现微信防撤回的方法
2019/02/21 Python
Python循环中else,break和continue的用法实例详解
2019/07/11 Python
Python实现代码统计工具
2019/09/19 Python
基于python解线性矩阵方程(numpy中的matrix类)
2019/10/21 Python
Python遍历字典方式就实例详解
2019/12/28 Python
实现CSS3中的border-radius(边框圆角)示例代码
2013/07/19 HTML / CSS
如何使用css3实现一个类在线直播的队列动画的示例代码
2020/06/17 HTML / CSS
英国鞋类及配饰零售商:Kurt Geiger
2017/02/04 全球购物
艺术应用与设计个人的自我评价
2013/11/23 职场文书
公安机关党的群众路线教育实践活动剖析材料
2014/10/10 职场文书
光棍节联谊晚会活动策划书
2014/10/10 职场文书
家庭教育教师培训学习体会
2016/01/14 职场文书
MySQL 全文索引使用指南
2021/05/25 MySQL