当前位置: 首页 > wzjs >正文

网站 绝对路径 相对路径wordpress 迁移 新目录

网站 绝对路径 相对路径,wordpress 迁移 新目录,无锡网络公司排名,网站开发设计进度表文章目录 前言本地部署 threejs 官网文档与案例threejs 结合 vue 进行开发创建一个场景和物体 前言 在 web 三维开发场景中,Three.js 是使用最多的 3D 引擎库,当前 Starred 107k: Manual 入门手册:为新手介绍了一些入门知识&…

文章目录

  • 前言
  • 本地部署 threejs 官网文档与案例
  • threejs 结合 vue 进行开发
  • 创建一个场景和物体


前言

在 web 三维开发场景中,Three.js 是使用最多的 3D 引擎库,当前 Starred 107k

  • Manual 入门手册:为新手介绍了一些入门知识,优先查看。
  • Examples 示例:包含了很多官方demo,做类似功能时查看相关 api 的用法。
  • Docs 文档:详细说明了 three.js 对外提供的每个 class 类的属性和方法。

本地部署 threejs 官网文档与案例

threejs 官网提供了文档与案例,但是有的时候国内访问速度比较慢或打不开,我们可以将官网的文档与案例部署到本地,这样可以提高访问速度。

部署步骤:

  1. 进入 threejs 的 github 仓库,点击 clone 或者 download 获取最新版代码。如果想要获取历史版本代码,点击右侧的 Releases 标签或顶部的 Tags 标签。
  2. 将代码下载到本地,解压后得到一个文件夹。
  3. 将文件夹放到 nginx 中 或使用 vscode 的 live server 插件打开。
  4. 访问 http://localhost:8000/docs 即可查看文档。
  5. 访问 http://localhost:8000/examples 即可查看示例。

当前 github 上最新版本是 r177,每个月都有更新一个版本。
为了和视频教程中的保持一致,避免新手学习阶段出现不必要的问题,本人选择了 r153 版本。后续项目实战时,再更新到最新版本。

在这里插入图片描述

在这里插入图片描述


threejs 结合 vue 进行开发

  1. 安装 threejs 与 typescript 类型定义 pnpm add three@0.153.0 @types/three@0.153.0 -D

  2. 打开官网的创建一个场景页面http://localhost:5501/three.js-r153/docs/index.html#manual/zh/introduction/Creating-a-scene,复制最下面的完整代码到 vue 项目中,一个正在旋转的立方体就显示出来了。

创建一个场景和物体

完整示例代码如下,后续基于此代码扩展。

<script setup lang="ts">
import * as THREE from 'three'
import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls.js'
import { onMounted, onUnmounted } from 'vue'// 定义setup内的全局变量
let scene, camera, renderer, controls, cubeonMounted(() => {init()addCube()
})onUnmounted(() => {try {// 释放three.js占用的内存scene.clear()renderer.dispose()renderer.forceContextLoss()renderer.content = nullconst gl = renderer.domElement.getContext('webgl')gl && gl.getExtension('WEBGL_lose_context').loseContext()} catch (error) {console.log(error)}
})const init = () => {/* 1. 初始化三维场景 *//* 1.1 创建场景对象 */scene = new THREE.Scene()/* 1.2 相机设置 */const container = document.getElementById('threeModel')camera = new THREE.PerspectiveCamera(75, // 控制相机的视野角度,通常用于模拟人眼或摄像机的视觉范围。值越大,看到的视野越广,但物体看起来会更小;值越小,则视野变窄,物体看起来更大。container.offsetWidth / container.offsetHeight, // 宽高比,0.1, // 近裁剪面距离(小于该距离的物体不会被渲染)1000 // 远裁剪面距离(大于该距离的物体不会被渲染))/* 1.3 渲染器设置 */renderer = new THREE.WebGLRenderer({antialias: true, // 开启抗锯齿(Antialiasing),使模型边缘更平滑,提升视觉效果,但会增加性能开销。alpha: true, // 启用透明通道(Alpha Channel),允许背景透明(如果未设置背景色),适用于将 3D 场景叠加在网页其他内容上。logarithmicDepthBuffer: true, // 使用对数深度缓冲(Logarithmic Depth Buffer),解决大规模场景中远处物体深度精度不足导致的“闪烁”或“穿透”问题,尤其适合大范围地形/建筑可视化。})// 设置渲染器的像素比,以适应高DPI设备renderer.setPixelRatio(window.devicePixelRatio)// 根据容器的大小设置渲染器的尺寸,以确保正确的显示效果renderer.setSize(container.offsetWidth, container.offsetHeight)// 启用自动清除功能,以避免在每一帧渲染时出现视觉残留renderer.autoClear = true// 将渲染器的DOM元素添加到页面中的容器中,使其可见container.appendChild(renderer.domElement)/* 1.4 轨道控制器 */controls = new OrbitControls(camera, renderer.domElement)// 将其设置为true以启用阻尼(惯性),这将给控制器带来重量感controls.enableDamping = true// 当.enableDamping设置为true的时候,阻尼惯性有多大controls.dampingFactor = 0.05// controls.addEventListener("change", function () {//   console.log(controls.object.position);//   console.log(controls.target);// });/* 1.5 辅助元素 */// 添加世界坐标辅助器const axesHelper = new THREE.AxesHelper(5)scene.add(axesHelper)/* 1.6 动画渲染 */function animate() {requestAnimationFrame(animate)if (cube) {cube.rotation.x += 0.01cube.rotation.y += 0.01}controls.update()renderer.render(scene, camera)}animate()
}const addCube = () => {/* 2. 创建物体 */const geometry = new THREE.BoxGeometry(1, 1, 1)const material = new THREE.MeshBasicMaterial({ color: 0x00ff00 })cube = new THREE.Mesh(geometry, material)scene.add(cube)camera.position.z = 5
}
</script><template><div id="threeModel" />
</template><style lang="scss" scoped>
#threeModel {position: absolute;top: 0;left: 0;width: 100%;height: 100%;
}
</style>

文章转载自:

http://IRmOdkuG.xLtdh.cn
http://16oOSyvQ.xLtdh.cn
http://cUXY3GVU.xLtdh.cn
http://6WHQEzJt.xLtdh.cn
http://iar1dvCv.xLtdh.cn
http://xIxX3CwK.xLtdh.cn
http://odAZSLtP.xLtdh.cn
http://3TRnfsqJ.xLtdh.cn
http://lV5PvUc5.xLtdh.cn
http://AiJhXJu7.xLtdh.cn
http://Vlyxx7Db.xLtdh.cn
http://Cvmg9dHM.xLtdh.cn
http://KYm1CACn.xLtdh.cn
http://G2Ojy702.xLtdh.cn
http://gsseODaN.xLtdh.cn
http://CAN2SjRe.xLtdh.cn
http://bn0VUGp6.xLtdh.cn
http://Law0hKyc.xLtdh.cn
http://mKXWIMlh.xLtdh.cn
http://96ZBN0b9.xLtdh.cn
http://ymEzKb31.xLtdh.cn
http://B8lgBrJh.xLtdh.cn
http://1F8kNNwu.xLtdh.cn
http://DNt9j1yT.xLtdh.cn
http://fJEG7BE9.xLtdh.cn
http://DONJ4Sok.xLtdh.cn
http://Jdivu5pM.xLtdh.cn
http://Wkxkcxky.xLtdh.cn
http://OejXogwu.xLtdh.cn
http://OdxtvvZz.xLtdh.cn
http://www.dtcms.com/wzjs/690347.html

相关文章:

  • 陕西网站开发联系方式建立什么网站可以赚钱
  • 江苏兴力建设集团有限公司网站门户网站是什么
  • 网站最合适的字体大小哪里有网站设计学
  • 网站栏目做树形结构图商洛 网站建设
  • 开县网站建设网站建设实验原理
  • 浙江省建设政务网站海外购物网站大全
  • angularjs 做团购网站大阳摩托车官网
  • 中文域名和网站的关系wordpress网站不收录
  • 微信电脑网站是什么原因android开发是做什么的
  • php+mysql网站开发...php做网站用什么软件好
  • 城乡建设杂志官方网站wordpress 登录后台
  • 织梦网站tel标签易优cms企业网站管理系统
  • 怎么在网站上做宣传云主机购买
  • 网站流量统计分析的维度包括太原网站制作公司飞向未来
  • 网站建设责任分工正规网站制作全包
  • 个人网站备案名称淘宝上的网站怎么做
  • 有没有做视频的网站南昌营销网站建设
  • 网站建设越秀seo推广方法
  • 网站后台做链接平台免费推广
  • 企业网站设计的基本内容包括哪些搭建漏洞网站
  • 网站建设技术流程图wordpress 自动发卡
  • 微网站和门户网站的区别wordpress好用插件推荐
  • 网站增加网页怎么用服务器搭建网站
  • 免费网站建设平台哪个平台可以免费做项目
  • 唐山建设网站网站设计师网站登录
  • 电子商务网站建设与管理实训报告延安商城网站开发设计
  • 安装网站到服务器建网站要备案
  • 齐全的赣州网站建设白城网站建设公司
  • 德阳响应式网站建设做生物学的网站
  • 一品猪网站开发遵义今天查出新冠