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 相关文章推荐
jquery tab插件精简版分享
Sep 10 Javascript
三种动态加载js的jquery实例代码另附去除js方法
Apr 30 Javascript
js性能优化技巧
Nov 29 Javascript
如何实现json数据可视化详解
Nov 24 Javascript
使用jquery判断一个元素是否含有一个指定的类(class)实例
Feb 12 Javascript
浅谈Vue.js
Mar 02 Javascript
Vue实现双向数据绑定
May 03 Javascript
JS实现Cookie读、写、删除操作工具类示例
Aug 28 Javascript
实现Vue的markdown文档可以在线运行的方法示例
Dec 11 Javascript
vue swipe自定义组件实现轮播效果
Jul 03 Javascript
Vue解决echart在element的tab切换时显示不正确问题
Aug 03 Javascript
在vue中动态修改css其中一个属性值操作
Dec 07 Vue.js
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
《星际争霸2》终章已出 RTS时代宣告终结
2017/02/07 星际争霸
php判断字符串在另一个字符串位置的方法
2014/02/27 PHP
php将图片保存为不同尺寸图片的图片类实例
2015/03/30 PHP
Joomla数据库操作之JFactory::getDBO用法
2016/05/05 PHP
php字符串的替换,分割和连接方法
2016/05/23 PHP
PHP开发APP端微信支付功能
2017/02/17 PHP
从ThinkPHP3.2.3过渡到ThinkPHP5.0学习笔记图文详解
2019/04/03 PHP
PHP超全局变量实现原理及代码解析
2020/09/01 PHP
JavaScript 判断浏览器类型及版本
2009/02/21 Javascript
jquery获得同源iframe内body下标签的值的方法
2014/09/25 Javascript
原生的html元素选择器类似jquery选择器
2014/10/15 Javascript
你所未知的3种Node.js代码优化方式
2016/02/25 Javascript
深入理解JavaScript内置函数
2016/06/03 Javascript
JavaScript获取css行间样式,内连样式和外链样式的简单方法
2016/07/18 Javascript
js动态生成form 并用ajax方式提交的实现方法
2016/09/09 Javascript
less简单入门(CSS 预处理语言)
2017/03/08 Javascript
Node+Express+MongoDB实现登录注册功能实例
2017/04/23 Javascript
BootStrap表单验证 FormValidation 调整反馈图标位置的实例代码
2017/05/17 Javascript
JavaScript基础教程之如何实现一个简单的promise
2018/09/11 Javascript
跟老齐学Python之Python安装
2014/09/12 Python
python实现根据ip地址反向查找主机名称的方法
2015/04/29 Python
python中判断文件编码的chardet(实例讲解)
2017/12/21 Python
python中字符串比较使用is、==和cmp()总结
2018/03/18 Python
Tensorflow中使用tfrecord方式读取数据的方法
2018/06/19 Python
Python3随机漫步生成数据并绘制
2018/08/27 Python
pandas 透视表中文字段排序方法
2018/11/16 Python
使用python绘制二元函数图像的实例
2019/02/12 Python
jupyter 实现notebook中显示完整的行和列
2020/04/09 Python
Python3.8安装Pygame教程步骤详解
2020/08/14 Python
python中re模块知识点总结
2021/01/17 Python
Python plt 利用subplot 实现在一张画布同时画多张图
2021/02/26 Python
Peter Alexander新西兰站:澳大利亚领先的睡衣设计师品牌
2016/12/10 全球购物
荷兰在线钓鱼商店:Raven
2019/06/26 全球购物
Java中compareTo和compare的区别
2016/04/12 面试题
css背景和边框标签实例详解
2021/05/21 HTML / CSS
MySQL慢查询中的commit慢和binlog中慢事务的区别
2022/06/16 MySQL