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 相关文章推荐
Js从头学起(基本数据类型和引用类型的参数传递详细分析)
Feb 16 Javascript
jquery ready(fn)事件使用介绍
Aug 21 Javascript
jquery弹窗插件colorbox绑定动态生成元素的方法
Jun 20 Javascript
js拆分字符串并将分割的数据放到数组中的方法
May 06 Javascript
基于jquery实现下拉框美化特效
Feb 02 Javascript
Bootstrap入门书籍之(零)Bootstrap简介
Feb 17 Javascript
javaScript数组迭代方法详解
Apr 14 Javascript
JavaScript构建自己的对象示例
Nov 29 Javascript
Angular ui.bootstrap.pagination分页
Jan 20 Javascript
原生JavaScript实现todolist功能
Mar 02 Javascript
浅谈Angular单元测试总结
Mar 22 Javascript
javascript防抖函数debounce详解
Jun 11 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
967 个函式
2006/10/09 PHP
WIN98下Apache1.3.14+PHP4.0.4的安装
2006/10/09 PHP
如何在PHP程序中防止盗链
2008/04/09 PHP
PHP 采集程序原理分析篇
2010/03/05 PHP
jQuery中on()方法用法实例
2015/01/19 Javascript
BOM系列第一篇之定时器setTimeout和setInterval
2016/08/17 Javascript
jquery实现刷新随机变化样式特效(tag标签样式)
2017/02/03 Javascript
JS实现页面打印功能
2017/03/16 Javascript
利用node.js本地搭建HTTP服务器
2017/04/19 Javascript
详解vue.js+UEditor集成 [前后端分离项目]
2017/07/07 Javascript
dropload.js插件下拉刷新和上拉加载使用详解
2017/10/20 Javascript
nodejs更改项目端口号的方法
2018/05/13 NodeJs
webpack4 SCSS提取和懒加载的示例
2018/09/03 Javascript
layui插件表单验证提交触发提交的例子
2019/09/09 Javascript
JS数组索引检测中的数据类型问题详解
2021/01/11 Javascript
python通过pil将图片转换成黑白效果的方法
2015/03/16 Python
Python实现求最大公约数及判断素数的方法
2015/05/26 Python
python中list常用操作实例详解
2015/06/03 Python
python使用生成器实现可迭代对象
2018/03/20 Python
TensorFlow实现卷积神经网络
2018/05/24 Python
Python动态导入模块和反射机制详解
2020/02/18 Python
在Keras中实现保存和加载权重及模型结构
2020/06/15 Python
美国南部最大的家族百货公司:Belk
2017/01/30 全球购物
英国内衣连锁店:Boux Avenue
2018/01/24 全球购物
实习生体会的自我评价范文
2013/11/28 职场文书
语文教学随笔感言
2014/02/18 职场文书
关于爱国的演讲稿
2014/05/07 职场文书
电钳工人个人求职信
2014/05/10 职场文书
旅游饭店管理专业自荐书
2014/06/28 职场文书
商场促销活动总结
2014/07/10 职场文书
物理课外活动总结
2014/08/27 职场文书
党的群众路线教育实践活动对照检查材料(教师)
2014/09/24 职场文书
骆驼祥子读书笔记
2015/06/26 职场文书
幼儿园教师暑期培训心得体会
2016/01/09 职场文书
Python实现8种常用抽样方法
2021/06/27 Python
css3属性选择器 “~”(波浪号) “,”(逗号) “+”(加号)和 “>”(大于号)
2022/04/19 HTML / CSS