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

成都网站设计哪家比较好大连网站建设优化

成都网站设计哪家比较好,大连网站建设优化,山东省住房和城乡建设厅网站注册中心,响应式网站开发软件文章目录 需求分析1. HTML版本2. Vue 版本 需求 导入obj 格式的模型数据 分析 .obj&#xff1a;Wavefront OBJ 格式&#xff0c;是一种广泛使用的三维模型文件格式。预览 .obj格式文件的软件可点此下载需要准备两种格式的数据&#xff0c;如下所示 1. HTML版本 html <!…

文章目录

    • 需求
    • 分析
      • 1. HTML版本
      • 2. Vue 版本

需求

导入obj 格式的模型数据

在这里插入图片描述

分析

  • .obj:Wavefront OBJ 格式,是一种广泛使用的三维模型文件格式。
  • 预览 .obj格式文件的软件可点此下载
  • 需要准备两种格式的数据,如下所示
    在这里插入图片描述

1. HTML版本

  • html
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Three.js OBJ Loader</title><style>body {margin: 0;overflow: hidden;}</style>
</head>
<body><script src="https://cdn.bootcdn.net/ajax/libs/three.js/r130/three.min.js"></script><script src="https://cdn.bootcdn.net/ajax/libs/three.js/r130/loaders/OBJLoader.js"></script><script src="https://cdn.bootcdn.net/ajax/libs/stats.js/r17/Stats.min.js"></script><script src="./main.js"></script>
</body>
</html>
  • js
// 创建场景、相机、渲染器等基本组件
const scene = new THREE.Scene();
const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
camera.position.z = 5;
const renderer = new THREE.WebGLRenderer({ antialias: true });
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);// 添加灯光和物体到场景中
const light = new THREE.AmbientLight(0xffffff);
scene.add(light);
const loader = new THREE.OBJLoader();
loader.load(// 模型文件路径'./model.obj',// 加载完成后的回调函数function (object) {scene.add(object);},// 加载过程中的回调函数function (xhr) {console.log((xhr.loaded / xhr.total * 100) + '% loaded');},// 加载失败时的回调函数function (error) {console.error(error);}
);// 添加性能统计器
const stats = new Stats();
document.body.appendChild(stats.dom);// 渲染场景
function render() {requestAnimationFrame(render);renderer.render(scene, camera);stats.update();
}
render();

在该示例中,我们首先创建了基本的场景、相机和渲染器,并将其添加到页面中。接着,我们使用THREE.OBJLoader加载器加载模型文件。加载完成后,我们将其添加到场景中。

需要注意的是,在加载模型文件之前,你需要确保OBJLoader加载器已经被引入。在本示例中,我们使用了CDN方式引入了Three.js和OBJLoader.js文件,你也可以通过其他方式进行引入。当然,也可以将代码放置到同一个文件中,避免多次引入。

2. Vue 版本

<template><div id="three-canvas"></div>
</template>
<script>
// import { Color, MOUSE, PerspectiveCamera, Scene, WebGLRenderer } from "three";
import { OrbitControls } from "three/examples/jsm/controls/OrbitControls.js";
import { AmbientLight, Color, MOUSE, PerspectiveCamera, Scene, Vector3, WebGLRenderer } from "three";
import { MTLLoader } from "three/examples/jsm/loaders/MTLLoader.js";
import { OBJLoader } from "three/examples/jsm/loaders/OBJLoader.js";export default {name: "index",data () {return {camera: null,  //相机对象scene: null,  //场景对象renderer: null,  //渲染器对象mesh: null,  //网格模型对象Mesh}},mounted () {this.init()this.$nextTick(() => {this.createModel()})},methods: {createModel () {let tht = thisconst onProgress = function (xhr) {if (xhr.lengthComputable) {const percentComplete = xhr.loaded / xhr.total * 100console.log(Math.round(percentComplete, 2) + '% downloaded')}}new MTLLoader().setPath('/static/obj/').load('male02.mtl', function (materials) {console.log("MTLLoader", materials)materials.preload()new OBJLoader().setMaterials(materials).setPath('/static/obj/').load('male02.obj', function (obj) {obj.position.set(5, 5, 5)obj.scale.set(0.1, 0.1, 0.1)tht.scene.add(obj)}, onProgress)})},init () {let container = document.getElementById('three-canvas')this.renderer = new WebGLRenderer({//开启抗锯齿antialias: true})//将渲染器挂载到domcontainer.appendChild(this.renderer.domElement)this.renderer.setSize(container.offsetWidth, container.offsetHeight, true)//实例化场景this.scene = new Scene()this.scene.background = new Color('#88B9DD')//实例化相机this.camera = new PerspectiveCamera(45, container.offsetWidth / container.offsetHeight, 1, 1000)//设置相机位置this.camera.position.set(50, 50, 50)//设置相机看先中心点this.camera.lookAt(new Vector3(0, 0, 0))//设置相机自身方向this.camera.up = new Vector3(0, 1, 0)//初始化轨道控制器let orbitControls = new OrbitControls(this.camera, this.renderer.domElement)//设置鼠标功能键orbitControls.mouseButtons = {//左键无功能LEFT: null,//中键缩放MIDDLE: MOUSE.DOLLY,//右键旋转RIGHT: MOUSE.ROTATE}//添加环境光const ambientLight = new AmbientLight('rgb(255,255,255)', 0.8)this.scene.add(ambientLight)let animate = () => {this.renderer.render(this.scene, this.camera)requestAnimationFrame(animate)}animate()},}
}
</script>
<style scoped>
#three-canvas {/* width: 100%; *//* height: 600px; *//* overflow: hidden; *//* background-color: #88B9DD; */
}
</style>
http://www.yayakq.cn/news/798315/

相关文章:

  • 做网站的图片素材网站建设哪家稳妥
  • 移动 网站模板职校计算机专业主要学什么
  • 网站建设怎么把代码放入网站上网站开发续签
  • 西安网站排名哪家公司好企业做网站的合同
  • 恩施市建设银行网站半月报网站建设商务代表工作总结
  • 网站建设要学哪些方面网站可信度验证
  • asp.net开发微网站开发在线教育平台
  • dede如何生成网站源码wordpress 下拉菜单设置
  • 学校做网站难吗医疗器械有限公司
  • 健康管理公司网站建设PHP MYSQL网站开发全程实
  • 自己做网站怎么弄高校网站建设
  • 自己注册公司网站进销存系统
  • 网站建设解决方案有哪些怎样建设网站赚钱
  • 农业网站建设免费wordpress 主题下载地址
  • 网站的登录界面怎么做长春网站建设索q479185700
  • 奉化市住房和城乡建设局网站如何建设自己的公司网站
  • 网站建设市场有多大有没有帮人做CAD的网站
  • sae wordpress 上传图片常德seo招聘
  • a0000网站建设阳江招聘网鹏程
  • 哪个网站做清洁的活多t恤在线制作网站
  • 企业cms建站系统临沂网站制作公司哪家好
  • 做暧暧网站在线观看莱芜网络推广
  • 注册网站在哪里创建企业一般用什么邮箱?
  • 浏览有关小城镇建设的网站工作室网站建设要多大内存
  • 怎样做视频上网站赚钱百度风云榜官网
  • 大型网站建设兴田德润实惠安徽省建设工程信息网关闭了吗
  • 书籍网站建设规划书3g门户手机网
  • 做音乐下载网站wordpress+展开
  • 做一个招聘信息的网站 用什么做网站的软件做计算机网站有哪些
  • 无锡做网站优化html代码有哪些