Three.js室内场景

news2024/12/26 11:36:58

Three.js实现三维可视化室内场景

1.效果

室内场景

2.安装

要安装three 的 npm 模块,请在你的项目文件夹里打开终端窗口,并运行:

npm install three
或
yarn add three

包将会被下载并安装。然后你就可以将它导入你的代码了:

import * as THREE from 'three'

引入性能监视器:

import Stats from 'three/examples/jsm/libs/stats.module.js'

3.实现

<div id="scene"></div>

初始化

this.createScene()
this.createStats()
this.createCamera()
this.createControls()
this.createRenderer()
this.render()
this.resize()
this.createAmbientLight()
this.createDirectionalLight()
this.createPlane(scenePlane) // 生成场景平面
this.createPlane({
    ...scenePlane, length: container.length + 150, width: container.width + 150, height: 1, color: '#5A5D5F', texture: {
   }, position: {
    x: 0, y: 0, z: -2 } }) // 生成场景平面
this.createPlane(floor) // 生成房间地板
wall.map(item => this.createCube(item)) // 生成墙壁
casement.map(item => this.createCube(item)) // 生成窗户
this.createCube(door) // 生成入户门
doorRoom.map(item => this.createCube(item)) // 生成室内门
mural.map(item => this.createCube(item)) // 生成壁画

3.1.创建场景

createScene() {
   
	this.scene = new THREE.Scene()
	this.scene.background = new THREE.Color('#BFE3DD')
	this.scene.fog = new THREE.Fog('#BFE3DD', 2000, 6000)
}

3.2.创建性能监视器

createStats() {
   
	this.stats = new Stats()
	this.stats.setMode(0)
	this.stats.domElement.style.width = `${
     100}px`
	this.stats.domElement.style.position = 'absolute'
	this.stats.domElement.style.top = 0
	this.stats.domElement.style.right = 0
	document.getElementById('#scene').appendChild(this.stats.domElement)
}

3.3.创建相机

createCamera() {
   
	const element = document.getElementById('#scene')
	const width = element.clientWidth // 窗口宽度
	const height = element.clientHeight // 窗口高度
	const k = width / height // 窗口宽高比
	this.camera = new THREE.PerspectiveCamera(45, k, 1, 1000)
	this.camera.position.set(1600, -800, 800) // 相机的位置
	this.camera.up.set(0, 0, 1) // 相机以哪个方向为上方
	this.camera.lookAt

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

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

相关文章

MySQL日志——错误日志、二进制日志

错误日志二进制日志查询日志慢查询日志 1.错误日志 查看日志位置&#xff1a; show variables like %log_error%查看错误日志&#xff1a; tail -f /var/log/mysql.log2.二进制日志 show variables like %log_bin%;cd /var/lib/mysql ll2.1 日志格式 查看日志格式指令&…

第9章 CSS-DOM

三位一体的网页 游览器由结构层&#xff0c;表现层&#xff0c;行为层组成 结构层 网页的结构层&#xff08;structural layer&#xff09;由HTML或XHTML之类的标记语言负责创建。 表现层 表示层&#xff08;presentation layer&#xff09;由CSS负责完成。CSS描述页面内容…

腾讯云COS+PicGO+截图工具+Obsidian+Typora+蚁小二:打造丝滑稳定的Markdown写作和分发环境

背景 很久很久以前&#xff0c;我写过一篇《有道云笔记EverythingTyporaGitHub图床PicGojsDelivr加速截图工具——创造丝滑免费的Markdown写作环境》&#xff08;https://blog.csdn.net/qq_43721542/article/details/9685957&#xff09;&#xff0c;当时的目的是打造一个云同…

中国艺术孙溟㠭篆刻作品《活着》

人人为生活挣扎着&#xff0c;做着不想做的事&#xff0c;说着不想说的话&#xff0c;为生活低头弯腰委屈求全人生苦多甜少&#xff0c;何时了&#xff01;何时了&#xff01;甜来人生到头了…… 孙溟㠭篆刻作品《活着》 孙溟㠭篆刻作品《活着》 孙溟㠭篆刻作品《活着》 文/九钵

美团基础架构面经总结汇总

美团基础架构的面经。 问的全是基础,一个编程语言的问都没有。 问题记录 MySQL-MVCC InooDB是通过 MVCC 实现可重复读的隔离级别的,MVCC 就是多版本并发控制,它其实记录了历史版本的数据,解决了读写并发冲突问题。有一个版本编码,然后它进入了各种操作下的数据状态,能…

2023华数杯数学建模A题思路 - 隔热材料的结构优化控制研究

# 1 赛题 A 题 隔热材料的结构优化控制研究 新型隔热材料 A 具有优良的隔热特性&#xff0c;在航天、军工、石化、建筑、交通等 高科技领域中有着广泛的应用。 目前&#xff0c;由单根隔热材料 A 纤维编织成的织物&#xff0c;其热导率可以直接测出&#xff1b;但是 单根隔热…

JDK19 - 虚拟线程详解

JDK19 - 虚拟线程详解 前言一. Continuation 和 虚拟线程1.1 Continuation 案例1.2 Continuation 内的重要成员1.3 run() 执行/恢复执行1.4 yield() 暂停执行1.5 测试和小总结 二. VirtualThread 解读2.1 VirtualThread 内的重要成员和构造2.2 VirtualThread 的首次执行2.3 结束…

Kubernetes高可用集群二进制部署(二)ETCD集群部署

Kubernetes概述 使用kubeadm快速部署一个k8s集群 Kubernetes高可用集群二进制部署&#xff08;一&#xff09;主机准备和负载均衡器安装 Kubernetes高可用集群二进制部署&#xff08;二&#xff09;ETCD集群部署 Kubernetes高可用集群二进制部署&#xff08;三&#xff09;部署…

problem(2):快速访问Github

访问GitHub慢&#xff0c;这是所有程序员都遇到的问题&#xff0c;今天给大家推荐一款软件&#xff0c;让我们浏览GitHub和浏览gitee一样快&#xff0c;这个开源软件就是FastGithub。 github加速神器&#xff0c;解决github打不开、用户头像无法加载、releases无法上传下载、g…

【MATLAB第64期】基于MATLAB的无目标函数SOBOL等全局敏感性分析法模型合集(SOBOL,PAWN,GSA,GSUA,GSAT等) 【更新中】

【MATLAB第64期】基于MATLAB的无目标函数SOBOL等全局敏感性分析法模型合集(SOBOL,PAWN,GSA,GSUA,GSAT等) 【更新中】 引言 在前面几期&#xff0c;介绍了局部敏感性分析法&#xff0c;本期来介绍全局敏感性分析模型&#xff0c;因还在摸索中&#xff0c;所以更新较慢&#xf…

复现原型链污染

目录 原型链污染是什么 例1 复现 例2 复现 原型链污染是什么 第一章中说到&#xff0c;foo.__proto__指向的是Foo类的prototype。那么&#xff0c;如果我们修改了foo.__proto__中的值&#xff0c;是不是就可以修改Foo类呢&#xff1f; 做个简单的实验&#xff1a; // foo是一个…

【Linux】揭秘:提升dd命令效率的秘密武器!

红帽RHCE试听课程&#xff1a;如何快速实现对服务器密码爆破&#xff1f;https://mp.weixin.qq.com/s/JUpf8G86jvnNwvKLUfWcLQ 红帽RHCE试听课程&#xff1a;linux系统下&#xff0c;用这个命令可以提高60%的工作效率https://mp.weixin.qq.com/s/pZVjMI1PLJzrA8hoPzkgMA 大家好…

LNMP及论坛搭建(第一个访问,单节点)

LNMP&#xff1a;目前成熟的一个企业网站的应用模式之一&#xff0c;指的是一套协同工作的系统和相关软件 能够提供静态页面服务&#xff0c;也可以提供动态web服务&#xff0c;LNMP是缩写 L&#xff1a;指的是Linux操作系统。 N&#xff1a;指的是nginx&#xff0c;nginx提…

MS17-010永恒之蓝漏洞复现

一&#xff0c;认识永恒之蓝 1&#xff0c;简介 永恒之蓝&#xff0c;代号MS17-010。爆发于2017年&#xff0c;其通过控制用户主机&#xff0c;利用SMB协议的漏洞来获取系统的最高权限&#xff0c;进而可以窃取信息&#xff0c;偷窥隐私&#xff0c;甚至使系统瘫痪。曾爆发覆盖…

性能测试遇到问题怎么办?学会分析流程就不怕!

一、内存溢出 1、堆内存溢出 现象&#xff1a; &#xff08;1&#xff09;压测执行一段时间后&#xff0c;系统处理能力下降。这时用JConsole、JVisualVM等工具连上服务器查看GC情况&#xff0c;每次GC回收都不彻底并且可用堆内存越来越少。 &#xff08;2&#xff09;压测持续…

数据库数据恢复-Oracle数据库文件出现坏块的数据恢复案例

Oracle数据库故障&初检&分析&#xff1a; 打开Oracle数据库时报错&#xff0c;报错信息&#xff1a;“system01.dbf需要更多的恢复来保持一致性&#xff0c;数据库无法打开”。用户急需恢复zxfg用户下的数据。 出现上述报错的可能原因包括&#xff1a;控制文件损坏、数…

【零基础学Rust | 基础系列 | 数据结构】元组,数组,向量,字符串,结构体

文章标题 简介&#xff1a;一&#xff0c;元组&#xff1a;1&#xff0c;定义元组&#xff1a;2&#xff0c;访问元组元素&#xff1a;3&#xff0c;元组解构&#xff1a;4&#xff0c;元组在函数中的应用&#xff1a; 二&#xff0c;数组&#xff1a;1&#xff0c;数组的声明和…

核心交换机新增了一个网段,现在下面PC可以获取地址访问内网 ,访问外网说DNS有问题不通

环境: SANGFOR AF 8.0.75 SANGFOR AC 13.0.47 H3C S6520-26Q-SI 问题描述: 1.在核心交换机上新规划了一个网段192.168.200.0/24,现在下面PC可以正常获取IP地址和DNS,正常访问内网服务和其它地址段IP ,访问外网说DNS有问题不通打不开网页 2.DNS解析失败,ping dns服务…

C++初阶 - 7.STL简介

目录 1.什么是STL 2.STL的版本 3.STL的六大组件 4.STL的重要性 5.如何学习STL 6.STL的缺陷 1.什么是STL STL(standard template libiary-标准模板库)&#xff1a;是C标准库的重要组成部分&#xff0c;不仅是一个可复用的组件库&#xff0c;而且是一个包罗数据结构与算法…

Django实现音乐网站 ⑷

使用Python Django框架制作一个音乐网站&#xff0c;在系列文章3的基础上继续开发&#xff0c; 本篇主要是后台歌曲类型表、歌单表模块功能开发。 目录 表结构设计 歌曲类型表结构 歌单表结构 创建表模型 创建表 后台注册表模型 引入表模型 后台自定义 总结 表结构设计…