深入学习threejs(学习)

1、下载 threejs 依赖包

pnpm install three

2、第一个简单的 Threejs 案例

// 导入thress.js

import * as THREE from 'three'

// 创建场景

const scene = new THREE.Scene()

// 创建相机

const camera = new THREE.PerspectiveCamera(

  45, // 视角

  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

camera.lookAt(0, 0, 0)

// 渲染场景

function animate() {

  requestAnimationFrame(animate)

  // 旋转立方体

  cube.rotation.x += 0.01

  cube.rotation.y += 0.01

  // 渲染场景

  renderer.render(scene, camera)

}

animate()

2.1、CSS代码 可忽略

*{

  margin: 0;

  padding: 0;

  box-sizing: border-box;

}

canvas{

  display: block;

  position: fixed;

  top: 0;

  left: 0;

  width: 100vw;

  height: 100vh;

}

1、坐标辅助器与轨道控制器

// 导入thress.js

import * as THREE from 'three'

// 导入轨道控制器

import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls.js'

// 创建场景

const scene = new THREE.Scene()

// 创建相机

const camera = new THREE.PerspectiveCamera(

  45, // 视角

  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

camera.position.y = 2

camera.position.x = 2

camera.lookAt(0, 0, 0)

// 添加世界坐标轴辅助器

const axesHelper = new THREE.AxesHelper(5)

scene.add(axesHelper)

// 添加轨道控制器

const controls = new OrbitControls(camera, renderer.domElement)

// 设置带阻尼的惯性

controls.enableDamping = true

// 设置阻尼系数

controls.dampingFactor = 0.05

// 设置旋转速度

controls.autoRotate = true


 

// 渲染场景

function animate() {

  //更新控制器

  controls.update()

  requestAnimationFrame(animate)

  // 旋转立方体

  // cube.rotation.x += 0.01

  // cube.rotation.y += 0.01

  // 渲染场景

  renderer.render(scene, camera)

}

animate()

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值