Three.js学习9:Three.js 响应式设计

当浏览器窗口尺寸变化的时候,Three.js 渲染的场景,也就是 canvas 不会变化。

让 canvas 随着窗口的尺寸变化,可以利用 window 对象的 resize 事件实现响应式变化。

window.onresize = function(){
    winH = window.innerHeight;
    winW = window.innerWidth;
    renderer.setSize( winW, winH );
    renderer.render( scene, camera );
}

 resize 事件函数里,重新计算窗口尺寸,让渲染器重新进行大小渲染。不过,画面会被拉扯变形。这是因为,窗口的宽高比跟之前的不一样了。

需要重新调整 camera 相机视锥体的宽高比。  

window.onresize = function(){
    winH = window.innerHeight;
    winW = window.innerWidth;
    renderer.setSize( winW, winH );
    camera.aspect = winW/winH;
    camera.updateProjectionMatrix();
    renderer.render( scene, camera );
}

相机的方法updateProjectionMatrix ()其作用是更新摄像机投影矩阵。在相机的任何参数被改变以后必须被调用。

这样就实现了 Three.js 的响应式设计。

相关推荐

  1. threejs

    2024-02-15 21:12:01       29 阅读
  2. 9. 媒体查询与响应设计

    2024-02-15 21:12:01       29 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-15 21:12:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-15 21:12:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-02-15 21:12:01       82 阅读
  4. Python语言-面向对象

    2024-02-15 21:12:01       91 阅读

热门阅读

  1. 基本算法--贪心

    2024-02-15 21:12:01       44 阅读
  2. 树莓派4B(Raspberry Pi 4B)使用docker搭建nacos集群

    2024-02-15 21:12:01       48 阅读
  3. [ubuntu]split命令分割文件

    2024-02-15 21:12:01       45 阅读
  4. Vue自定义指令

    2024-02-15 21:12:01       48 阅读
  5. 不等式的证明之一

    2024-02-15 21:12:01       52 阅读
  6. c# 字符串帮助类

    2024-02-15 21:12:01       48 阅读
  7. springboot开启mybatis二级缓存

    2024-02-15 21:12:01       49 阅读
  8. 判断日期是否符合格式

    2024-02-15 21:12:01       42 阅读
  9. 算法训练营day25(补),回溯5

    2024-02-15 21:12:01       55 阅读