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

news2024/11/29 13:52:03

当浏览器窗口尺寸变化的时候,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.coloradmin.cn/o/1450121.html

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

相关文章

leetcode:343.整数拆分

解题思路: 拆分的越多越好(暂且认为),尽可能拆成m个近似相等的数,会使得乘积最大 dp含义:将i进行拆分得到最大的积为dp[i] 递推公式:j x dp[i-j](固定j,只通过凑dp[i-j]进而实现所…

C++ 动态规划 计数类DP 整数划分

一个正整数 n 可以表示成若干个正整数之和,形如:nn1n2…nk ,其中 n1≥n2≥…≥nk,k≥1 。 我们将这样的一种表示称为正整数 n 的一种划分。 现在给定一个正整数 n ,请你求出 n 共有多少种不同的划分方法。 输入格式 共一行&…

SpringCloud第二天

1.Nacos配置管理 Nacos除了可以做注册中心,同样可以做配置管理来使用。 1.1.统一配置管理 当微服务部署的实例越来越多,达到数十、数百时,逐个修改微服务配置就会让人抓狂,而且很容易出错。我们需要一种统一配置管理方案&#x…

【AIGC】Stable Diffusion之模型微调工具

推荐一款好用的模型微调工具,cybertron furnace 是一个lora训练整合包,提供训练 lora 模型的工具集或环境。集成环境包括必要的依赖项和配置文件、预训练脚本,支持人物、二次元、画风、自定义lora的训练,以简化用户训练 lora 模型…

Linux中sigaction函数和SIGCHLD信号的使用

sigaction函数: 函数说明:注册一个信号处理函数 函数原型:int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact); 函数参数: signum:捕捉的信号act:传入参数,…

【C++笔记】第一阶段:C++基础入门

C基础入门 1 C初识1.1 创建一个C程序1.1.1 创建项目1.1.2 创建文件1.1.3 编写代码1.1.4 运行程序 1.2 注释1.3 变量1.4 常量1.5 关键字1.6 标识符命名规则 2 数据类型2.1 整型2.2 sizeof关键字2.3 实型(浮点型)2.4 字符型2.5 转义字符2.6 字符串型2.7 布…

单源最短路建图方式例题整理

1129. 热浪(活动 - AcWing) 思路:题目只是加了一个背景,但实际上还是很裸的单源最短路问题。我们有四种写法,bellman_ford算法时间复杂度不如spfa,而且这里对边数没有限定,所以没必要使用bellma…

爱上JVM——常见问题:JVM组成(一)

1 JVM组成 1.1 JVM由那些部分组成,运行流程是什么? 难易程度:☆☆☆ 出现频率:☆☆☆☆ JVM是什么 Java Virtual Machine Java程序的运行环境(java二进制字节码的运行环境) 好处: 一次编写&…

【AIGC】Stable Diffusion的模型入门

下载好相关模型文件后,直接放入Stable Diffusion相关目录即可使用,Stable Diffusion 模型就是我们日常所说的大模型,下载后放入**\webui\models\Stable-diffusion**目录,界面上就会展示相应的模型选项,如下图所示。作者…

【JAVA-Day81】 线程休眠: Java 中暂停线程执行的方法 ⏸️

线程休眠: Java 中暂停线程执行的方法 ⏸️💤 线程休眠: Java 中暂停线程执行的方法 ⏸️💤摘要 📝引言 🚀正文 📚一、什么是线程休眠 ⏸️二、线程什么情况下会休眠 ❓三、模拟线程休眠 &#…

jenkins-maven环境的安装

jenkins-maven环境的安装

leetcode 160 相交链表

题目 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。 图示两个链表在节点 c1 开始相交: 题目数据 保证 整个链式结构中不存在环。 注意,函数返回结…

Gemini 1.5 Pro揭秘:Google DeepMind新一代AI模型如何突破千万级别词汇限制?

Gemini 1.5 Pro 发布! 这款模型凭借其超长的上下文处理能力脱颖而出,支持10M tokens。 它的多模态特性意味着,无论面对多么庞大复杂的内容,Gemini 1.5 Pro都能游刃有余地应对。 在AI的世界里,上下文的理解如同记忆的…

【类与对象(1)】类的引入、访问及封装、定义、作用域、实例化、类大小的计算、this指针

1.类的引入 C兼容了C语言结构体的用法,但是同时又升级成了类。结构体中只能定义变量,类中不仅可以定义变量,还可以定义函数。 例如,数据结构中实现栈,结构体stack中只定义了变量,要实现的函数在结构体外定…

npm使用国内淘宝镜像(最新地址)

目录 前言 一、命令配置 二、使用cnpm安装 三、常见包地址 四、总结 往期回顾 前言 我们前端程序员在使用国外的镜像源速度很慢并且容易下载失败,有时候需要尝试多次才有可能下载成功,很麻烦,但是可以切换为国内镜像源,下…

Node.js开发-express框架

express框架 1) 介绍2) express 路由3) express 响应设置4) express 其他响应5) express中间件6) 静态资源中间件7) 获取请求体数据 body-parser8) Router 路由模块化9) EJS 模板引擎 1) 介绍 express 是一个基于 Node.js 平台的极简、灵活的 WEB 应用开发框架,官方…

MySQL学习记录——팔 函数

文章目录 1、日期函数2、字符串函数3、数学函数4、其它函数 1、日期函数 //获取日期 select current_date(); //获取时间 select current_time(); //获取时间戳, 格式为日期时间 select current_timestamp(); //获取当前时间, 格式为日期时间 select now(); //获取参数的日期部…

单html页面使用Vue3和Element-Plus

一、快速入门 使用CDN方式引入Vue3使用CDN方式引入Element-Plus的样式文件和组件库 案例 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, ini…

Linux学习(二)Makefile与GCC

程序运行步骤&#xff0c;预处理->预编译->编译->链接 1.预处理 gcc -E 文件名&#xff0c;生成的文件不会存储&#xff0c;可以重定向 > 到另一个文件中 2.编译 gcc -c *.c -o *.o 编译生成的文件为.o 可以将它编译为汇编 gcc -S 文件名 3.链接 gcc *.o *.…

投资银行在网络安全生态中的作用

文章目录 一、投资银行的含义(一)并购买方。(二)并购卖方。(三)IPO辅助。(四)投资银行业务的另一方面是帮助这些交易融资。二、从投资银行角度看网络安全产业(一)行业的短期前景三、复杂的网络安全并购(一)行业知识对投资银行业务很重要(二)在网络安全领域,技术…