three-入门学习-简单的3D实现

---

title: three-入门学习-简单的3D实现

date: 2023-04-06 11:45:00

categories: 入门学习

tags: Three

---

### three-入门学习

###### 1. 安装 three.js

> npm install three 安装好之后复制如下代码就能跑起来

>

> > 3D 效果是前端绕不过的发展趋势,未来会有更多的 3D 场景的需要。

```javascript

<template>

  <div>3D</div>

</template>

<script setup lang="ts">

import * as THREE from 'three';

//创建一个三维场景Scene 构造器,相当于你需要放东西的盒子

const scene = new THREE.Scene();

// 创建一个相机 PerspectiveCamera 透明相机,相当于一个投影仪,投影出3D效果

// PerspectiveCamera( fov : Number, aspect : Number, near : Number, far : Number )

// fov — 摄像机视锥体垂直视野角度

// aspect — 摄像机视锥体长宽比

// near — 摄像机视锥体近端面

// far — 摄像机视锥体远端面

const camera = new THREE.PerspectiveCamera(

  75,

  window.innerWidth / window.innerHeight,

  0.1,

  1000

);

// 创建你的渲染器,用来渲染你定义的图形动画

const renderer = new THREE.WebGLRenderer();

// 设置渲染图形的大小

renderer.setSize(window.innerWidth, window.innerHeight);

// 添加元素

document.body.appendChild(renderer.domElement);

//  定义立方体图形

const geometry = new THREE.BoxGeometry(1, 1, 1);

// 构建立方体的材质和颜色

const material = new THREE.MeshBasicMaterial({ color: 0x00ff00 });

// 网格内的物体 构成定义的立方体图形,并且使用什么样的材质

const cube = new THREE.Mesh(geometry, material);

// 放在环境中

scene.add(cube);

// 坐标轴的位置

camera.position.z = 5;

function animate() {

  // 频率刷新 切换的时候会停止

  requestAnimationFrame(animate);

  // 物体旋转的大小

  cube.rotation.x += 0.01;

  cube.rotation.y += 0.01;

  // 图形渲染函数 传入场景和相机

  renderer.render(scene, camera);

}

animate();

</script>

<style scoped>

.logo {

  height: 6em;

  padding: 1.5em;

  will-change: filter;

  transition: filter 300ms;

}

.logo:hover {

  filter: drop-shadow(0 0 2em #646cffaa);

}

.logo.vue:hover {

  filter: drop-shadow(0 0 2em #42b883aa);

}

</style>

```

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容