three.js实现3D视野缩放效果

 更新时间:2017年11月16日 10:25:51   作者:妙趣又横生  
这篇文章主要为大家详细介绍了three.js实现3D视野缩放效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

首先,不再废话了,什么是three.js,是干什么的,知道的就是知道,不知道的就百度吧。

小编为大家推荐一篇:Three.js快速入门教程

昨儿发现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队列结构Queue实现过程解析

    JavaScript队列结构Queue实现过程解析

    这篇文章主要介绍了JavaScript队列结构Queue实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • TypeScript中交叉类型和联合类型的区别详解

    TypeScript中交叉类型和联合类型的区别详解

    联合类型(Union Types)和交叉类型(Intersection Types)是 TypeScript 中的两种高级类型,它们都用于组合多个类型并生成新的类型,但它们两者之间的用法不一样,本文小编就给大家讲讲TypeScript中交叉类型和联合类型的区别,需要的朋友可以参考下
    2023-09-09
  • 页面使用密码保护代码

    页面使用密码保护代码

    这是一个由JS实现的网页密码保护代码,在进入网页前需要在弹出框中输入密码才可以,不过现在不怎么用了,一般情况下,目前都在后台处理这种功能,用户输入用户名和密码后交给服务器处理,然后再返回信息,若登录无误就可看到某些内容
    2013-04-04
  • JavaScript判断数组类型的方法

    JavaScript判断数组类型的方法

    这篇文章主要介绍了JavaScript判断数组类型的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • 浅谈 Mousewheel 事件

    浅谈 Mousewheel 事件

    当需要制作转动鼠标滚轮放大页面字体这样的交互效果时,会用到 Mousewheel 事件。
    2010-09-09
  • 手机端网页点击链接触发自动拨打或保存电话的示例代码

    手机端网页点击链接触发自动拨打或保存电话的示例代码

    通过网页拨打电话,在点击链接时触发自动拨打或保存电话,此方法塞班、安卓与iphone都支持
    2014-08-08
  • Qt6基于Qml的文件对话框演示效果

    Qt6基于Qml的文件对话框演示效果

    这篇文章主要介绍了Qt6基于Qml的文件对话框演示,包括打开单个文件配置和打开多个文件配置及保存文件配置的方法,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2022-10-10
  • 了解Javascript的模块化开发

    了解Javascript的模块化开发

    这篇文章主要介绍了了解Javascript的模块化开发,本文讲解了为什么需要模块化开发,模块化开发的形成原因等内容,需要的朋友可以参考下
    2015-03-03
  • 原生js实现下拉选项卡

    原生js实现下拉选项卡

    这篇文章主要为大家详细介绍了原生js实现下拉选项卡,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-11-11
  • 一个不错的仿携程自定义数据下拉选择select

    一个不错的仿携程自定义数据下拉选择select

    这是一个仿携程自定义的数据下拉选择select,对一些比较重要的参数进行的描述,方便初学者
    2014-09-09

最新评论