Three.js基础:建立Cube并实现鼠标交互,动画旋转

Posted 知乐

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Three.js基础:建立Cube并实现鼠标交互,动画旋转相关的知识,希望对你有一定的参考价值。

index.html文件:

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="utf-8"> 
 5         <title>Cube</title>
 6         <script type="text/javascript" src="three.js"></script>
 7         <script type="text/javascript" src="mythree.js"></script>    
 8         <script type="text/javascript" src="js/controls/OrbitControls.js"></script>
 9     </head>
10 
11     <body onload="init()">
12         <div>
13             <canvas id="mainCanvas" width="500px" height="500px" ></canvas>
14         </div>
15     </body>
16 
17 </html>

 

mythere.js文件:

 1 var renderer, camera, scene,cube,controls;
 2 
 3 function init() {
 4     // renderer
 5     renderer = new THREE.WebGLRenderer({
 6         canvas: document.getElementById(‘mainCanvas‘)
 7     });
 8     renderer.setClearColor(0x000000); // black
 9     // scene
10     scene = new THREE.Scene();
11     // camera
12     camera = new THREE.PerspectiveCamera(45, 4 / 3, 1, 1000);
13     camera.position.set(0, 0, 5);
14     scene.add(camera);
15     // a cube in the scene
16     cube = new THREE.Mesh(new THREE.CubeGeometry(2, 2, 3),
17             new THREE.MeshBasicMaterial({
18                 color: 0xff0000
19             })
20     );
21     scene.add(cube);
22     
23     //controlls
24     controls = new THREE.OrbitControls( camera );
25     controls.addEventListener( ‘change‘, render );    
26     
27     // Animation        
28     requestAnimationFrame(draw);    
29     
30     render();
31 }
32 
33 // Animation
34 function draw() {
35     id = requestAnimationFrame(draw);
36     cube.rotation.x += 0.05;
37     cube.rotation.y += 0.05;
38     renderer.render(scene, camera);
39 }
40 
41 function render() {
42     renderer.render(scene, camera);
43 }

 

以上是关于Three.js基础:建立Cube并实现鼠标交互,动画旋转的主要内容,如果未能解决你的问题,请参考以下文章

如何实现对象交互

Three.js r111 THREE.ShaderLib.cube 统一 tCube 到 envMap 问题

第136篇:Three.js基础入门动画API:setInterval 与 requestAnimationFrame的区别

Three.js 从鼠标位置投射光线

在 Three.JS 中通过鼠标单击选择 Collada 对象

在运行时更改使用 Three.js 创建的 3D Cube 的宽度/高度/长度