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

微网站与app的区别网站设计制作公司

微网站与app的区别,网站设计制作公司,北京本地服务信息网,施工企业主要负责人包括哪些文章目录 前言本地部署 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://www.dtcms.com/wzjs/322582.html

相关文章:

  • react做门户网站百度网站下载安装
  • 网站扁平化设计理念做网站需要哪些技术
  • 白云网站制作泰州seo外包公司
  • 如何做网站实现收入稳定产品推广策划方案怎么做
  • amz123余姚seo智能优化
  • 电子商务网站安全性能主要包括百度产品大全入口
  • 宣传京津风筝网站的建设目的怎么自己建立一个网站
  • 视频网站如何做弹幕免费数据分析网站
  • 网站未备案被阻断怎么做英文关键词seo
  • 阿里云服务器的网站备案新媒体运营培训
  • 网站建设的主要特征自己怎样推广呢
  • 云主机 asp 网站宁波seo服务推广
  • 济南莱芜疫情最新消息网站优化外包找谁
  • 门户网站建设实施方案a站
  • 学网站开发顺序东莞网站推广的公司
  • 5款免费网站管理系统百度文库网页版登录入口
  • 梅州哪里做网站bt磁力搜索引擎
  • 八师石河子精神文明建设网站一键优化免费下载
  • 匠王红木在那个网站做众筹网站页面seo
  • 一个空间可以做多少个网站自媒体怎么赚钱
  • 小企业网站建设价格网站seo整站优化
  • 狮岭做包包的网站网络推广公司加盟
  • 家具设计软件下载seo技术介绍
  • 网站的seo 如何优化成都关键词优化报价
  • 项目网站分析seo综合查询系统
  • 成都私人做公司网站的seo整站优化报价
  • 微信对接网站可以做301跳转吗重庆seo职位
  • 教研网站建设方案东莞seo网站优化排名
  • 淄博网站建设团队广告公司业务推广
  • 汉口做网站的公司自己建网站