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 常见操作实现方式和常用函数方法总结
May 06 Javascript
JS 实现图片直接下载示例代码
Jul 22 Javascript
extjs_02_grid显示本地数据、显示跨域数据
Jun 23 Javascript
jQuery地图map悬停显示省市代码分享
Aug 20 Javascript
jQuery实现弹出带遮罩层的居中浮动窗口效果
Sep 12 Javascript
ajax的分页查询示例(不刷新页面)
Jan 11 Javascript
jquery单击文字或图片内容放大并居中显示
Jun 23 jQuery
微信小程序联网请求的轮播图
Jul 07 Javascript
vue.js 底部导航栏 一级路由显示 子路由不显示的解决方法
Mar 09 Javascript
微信网页授权并获取用户信息的方法
Jul 30 Javascript
深入koa-bodyparser原理解析
Jan 16 Javascript
jquery制作的移动端购物车效果完整示例
Feb 24 jQuery
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使用header()输出图片缓存实例
2014/12/09 PHP
PHP 获取指定地区的天气实例代码
2017/02/08 PHP
Laravel框架实现model层的增删改查(CURD)操作示例
2018/05/12 PHP
jQuery 对象中的类数组操作
2009/04/27 Javascript
Dojo 学习笔记入门篇 First Dojo Example
2009/11/15 Javascript
javascript 函数速查表
2010/02/07 Javascript
location.href 在IE6中不跳转的解决方法与推荐使用代码
2010/07/08 Javascript
在JS中最常看到切最容易迷惑的语法(转)
2010/10/29 Javascript
javascript控制swfObject应用介绍
2012/11/29 Javascript
javascript单例模式的简单实现方法
2015/07/25 Javascript
React实现双向绑定示例代码
2016/09/19 Javascript
JavaScript日期对象(Date)基本用法示例
2017/01/18 Javascript
写jQuery插件时的注意点
2017/02/20 Javascript
jquery设置css样式的多种方法(总结)
2017/02/21 Javascript
浅析从vue源码看观察者模式
2018/01/29 Javascript
详解如何在vue项目中使用lodop打印插件
2018/09/27 Javascript
Vue自定义属性实例分析
2019/02/23 Javascript
vue slot与传参实例代码讲解
2019/04/28 Javascript
小程序跳转H5页面的方法步骤
2020/03/06 Javascript
python3.3实现乘法表示例
2014/02/07 Python
Ubuntu 14.04+Django 1.7.1+Nginx+uwsgi部署教程
2014/11/18 Python
Python有序字典简单实现方法示例
2017/09/28 Python
python的unittest测试类代码实例
2017/12/07 Python
Python的条件表达式和lambda表达式实例
2019/01/31 Python
python3.x 生成3维随机数组实例
2019/11/28 Python
浅谈在JupyterNotebook下导入自己的模块的问题
2020/04/16 Python
Android面试题附答案
2014/12/08 面试题
数控专业毕业生求职信范文
2013/09/21 职场文书
面包店的创业计划书范文
2014/01/16 职场文书
赡养老人协议书
2014/04/21 职场文书
民主评议党员自我评议范文2014
2014/09/26 职场文书
上班迟到检讨书
2015/05/06 职场文书
python使用pywinauto驱动微信客户端实现公众号爬虫
2021/05/19 Python
Go语言实现Snowflake雪花算法
2021/06/08 Golang
python中对列表的删除和添加方法详解
2022/02/24 Python
python实现商品进销存管理系统
2022/05/30 Python