前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >threejs旋转入门

threejs旋转入门

作者头像
爱吃大橘
发布2022-12-27 14:38:24
1.9K0
发布2022-12-27 14:38:24
举报
文章被收录于专栏:前端笔记薄前端笔记薄

背景:

threejs对我很重要,因为它web可视化的基础,是进场的钥匙,而我正准备搞web可视化。

让我以一个立方体旋转为例子,讲讲threejs

首先,我们先从小明拍视频的故事来讲一下。

小明想拍一个立方体旋转的视频,首先它要有 相机 ,用来拍照。他还要有合适的场景,如果是垃圾堆可不行。然后就是主角 一个质感的会旋转立方体。为了拍的清晰,小明还专门找了一个光照良好的晴天。然后小明准备开拍,他调整了 相机与立方体的距离画面的大小,让视频更为合适。

代码如下:

代码语言:javascript
复制
/*
 * @Author: pym
 * @Date: 2022-01-04 11:51:03
 * @LastEditors: pym
 * @Description: 
 * @LastEditTime: 2022-09-17 01:33:12
 */
import React from 'react';
import ReactDOM from 'react-dom';
import './index.less';
import * as THREE from 'three';

// init
// 相机
const camera = new THREE.PerspectiveCamera(70, window.innerWidth / window.innerHeight, 0.01, 10);
camera.position.z = 0.5;
// 场景
const scene = new THREE.Scene();

// 几何体
const geometry = new THREE.BoxGeometry(0.2, 0.2, 0.2);
// 材质
const material = new THREE.MeshNormalMaterial();
// 对象 需要几何对象 和 材质
const mesh = new THREE.Mesh(geometry, material);
// 把地图加入场景
scene.add(mesh);

// 初始化渲染器
const renderer = new THREE.WebGLRenderer({ antialias: true });
// 设置画布的大小
renderer.setSize(window.innerWidth, window.innerHeight);
// 设置动画
renderer.setAnimationLoop(animation);
// 把画布加入dom
document.body.appendChild(renderer.domElement);
// renderer.render(scene, camera);

// animation()

function animation(time) {

  mesh.rotation.x = time / 2000;
  mesh.rotation.y = time / 1000;
  console.log(time)
  renderer.render(scene, camera);

}
// function start() {
//   // fetch('/tripdocs/test/api', { method: 'POST' });
// }

// setTimeout(() => {
//   start();
// }, 1000);
// function Three() {
//   return 
// }
// ReactDOM.render(<div className="app">qqq</div>, document.getElementById('root'));
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-09-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档