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

 -----------------------------华丽的分割线---------------------

相关代码均已上传到 gitee 中:myThree: 学习 Three.js ,努力加油~!

Gitee 静态演示地址: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 的响应式设计。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/684502.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端架构: 调试本地脚手架最佳实践梳理

脚手架本地调试标准流程 1 )链接本地脚手架 就是当我们这个脚手架开发好还没上线的时候可以进入到脚手架的一个目录, 通过 npm link 完成这个操作$ cd your-cli-dir$ npm link这个操作的含义是将当前的项目链接到node全局的 node_modules 中作为一个库文件, 并且还…

Spark编程实验五:Spark Structured Streaming编程

目录 一、目的与要求 二、实验内容 三、实验步骤 1、Syslog介绍 2、通过Socket传送Syslog到Spark 3、Syslog日志拆分为DateFrame 4、对Syslog进行查询 四、结果分析与实验体会 一、目的与要求 1、通过实验掌握Structured Streaming的基本编程方法; 2、掌握…

相机图像质量研究(17)常见问题总结:CMOS期间对成像的影响--靶面尺寸

系列文章目录 相机图像质量研究(1)Camera成像流程介绍 相机图像质量研究(2)ISP专用平台调优介绍 相机图像质量研究(3)图像质量测试介绍 相机图像质量研究(4)常见问题总结:光学结构对成像的影响--焦距 相机图像质量研究(5)常见问题总结:光学结构对成…

【AIGC】Stable Diffusion的常见错误

Stable Diffusion 在使用过程中可能会遇到各种各样的错误。以下是一些常见的错误以及可能的解决方案: 模型加载错误:可能出现模型文件损坏或缺失的情况。解决方案包括重新下载模型文件,确保文件完整并放置在正确的位置。 依赖项错误&#x…

009集——磁盘详解——电脑数据如何存储在磁盘

很多人也知道数据能够保存是由于设备中有一个叫做「硬盘」的组件存在,但也有很多人不知道硬盘是怎样储存这些数据的。这里给大家讲讲其中的原理。 首先我们要明白的是,计算机中只有0和1,那么我们存入硬盘的数据,实际上也就是一堆0…

Python三级考试笔记

Python三级考试笔记【源源老师】 三级标准 一、 理解编码、数制的基本概念,并且会应用。 1. 能够进行二进制、十进制以及十六进制之间的转换; 2. 理解Python中的数制转换函数。 二、 掌握一维数据的表示和读写方法,能够编写程序处理一维数据…

阿里云幻兽帕鲁服务器手动更新游戏服务端的命令

幻兽帕鲁Windows服务器版手动更新命令: 首先打开服务器桌面的Windows PowerShell工具,找不到就左下角开始菜单,搜索即可。 然后输入下面的命令切换到这个目录: cd C:\steamcmd 接着运行下面的命令: .\steamcmd.ex…

MySQL性能调优篇(7)-MySQL的集群部署和优化

MySQL的集群部署和优化 MySQL是一种常用的关系型数据库管理系统,可以用于存储和管理大量的结构化数据。为了满足高并发和大规模数据存储需求,MySQL的集群部署和优化变得非常重要。本篇博客将介绍MySQL的集群部署方法和一些优化技巧。 一、MySQL集群部署…

2.15作业

1、选择题 1.1、有以下程序 int main() { char a[7]"a0\0a0\0";int i,j; isizeof(a); jstrlen(a); printf("%d %d\n",i,j); } //strlen求出字符串的长度,其实是字符串中字符的个数,不包括\0 程序运行后的输出结果是____C…

【C++】C++11上

C11上 1.C11简介2.统一的列表初始化2.1 {} 初始化2.2 initializer_list 3.变量类型推导3.1auto3.2decltype3.3nullptr 4.范围for循环5.final与override6.智能指针7. STL中一些变化8.右值引用和移动语义8.1左值引用和右值引用8.2左值引用与右值引用比较8.3右值引用使用场景和意义…

【算法设计与分析】搜索旋转排序数组

📝个人主页:五敷有你 🔥系列专栏:算法分析与设计 ⛺️稳中求进,晒太阳 题目 整数数组 nums 按升序排列,数组中的值 互不相同 。 在传递给函数之前,nums 在预先未知的某个下标 k&#xff…

什么是“感知机”?

感知机(神经网络和支持向量机的理论基础) 概念:简单来说,感知机就是一个旨在建立一个线性超平面对线性可分的数据集进行分类的线性模型 分类: 单层感知机多层感知机( Multi-Layer Perceptron&#xff0c…

【lesson55】线程同步

线程同步 同步:在保证数据安全的前提下,让线程能够按照某种特定的顺序访问临界资源,从而有效避免饥饿问题,叫做同步 例一:我们之前的抢票代码,一个线程把票全抢完了,它错了吗?没错…

【springboot+vue项目(十六)】基于Oauth2的SSO单点登录(三)SpringSecurity+Jwt 整合Aouth2(客户端部分)

要将Spring Security与基于OAuth 2.0的第三方认证系统进行整合,你需要执行以下步骤: 配置Spring Security以使用OAuth 2.0: 添加依赖项:在项目的构建文件(如Maven的pom.xml)中添加适当的依赖项,…

top100-回溯算法专题

回溯算法和深度优先遍历 回溯法采用试错的思想,它尝试分布的去解决一个问题。在分布解决问题的过程中,当它通过尝试发现现有的分布答案不能得到有效的正确的解答的时候,它将取消上一步甚至上级不的计算,再通过其他的可能的分布解答…

Duilib 的WinMain函数学习

之前跑了一个基本例子;接下来准备再做一些; 看着它的WinMain函数里面,有几句不知道需不需要; 它是这样的;从别的示例里面来的; int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE /*hPrevInstance*/, LPSTR /*lpCmdLine*/, int nCmdShow) {CPaintManagerUI::SetIn…

Qt Creator 继承分文件编写代码流程实现简单案列

Qt Creator 继承分文件流程实现简单案列 打开Qt Creator&#xff0c;新建c项目 添加类 完成之后&#xff0c;会自动生成.h和.cpp文件 一、animal.h文件 主要用来写类&#xff0c;包括成员变量和函数 #ifndef ANIMAL_H #define ANIMAL_H #include <iostream> #inclu…

高效货运 - 华为OD统一考试(C卷)

OD统一考试&#xff08;C卷&#xff09; 分值&#xff1a; 200分 题解&#xff1a; Java / Python / C 题目描述 老李是货运公司承运人&#xff0c;老李的货车额定载货重量为wt&#xff1b;现有两种货物&#xff0c;货物A单件重量为wa&#xff0c;单件运费利润为pa&#xff0c…

【matalab】基于Octave的信号处理与滤波分析案例

一、基于Octave的信号处理与滤波分析案例 GNU Octave是一款开源软件&#xff0c;类似于MATLAB&#xff0c;广泛用于数值计算和信号处理。 一个简单的信号处理与滤波分析案例&#xff0c;说明如何在Octave中生成一个有噪声的信号&#xff0c;并设计一个滤波器来去除噪声。 首…

识别盐构造在预先确定造山带动力学和几何形态方面的重要性和控制作用

近几十年来&#xff0c;理解盐岩的变形已成为许多含盐褶皱冲断带中日益受到关注的研究课题。越来越多的研究指出&#xff0c;继承性正断层及与之相连的盐构造在预先确定造山带动力学和几何形态方面的重要性和控制作用&#xff08;例如&#xff0c;在北石灰岩阿尔卑斯地区有Gran…