webGL相机控制器

需要引入相机控制插件OrbitControls

1     <script type="text/javascript" src="framework/jquery.1.11.1.min.js"></script>
2     <script src="framework/three.js"></script>
3     <script src="framework/OrbitControls.js"></script>

直接看代码

 1 <html>
 2 
 3 <head>
 4     <meta charset="UTF-8">
 5     <link rel="stylesheet" type="text/css" href="stylesheets/main.css">
 6     <script type="text/javascript" src="framework/jquery.1.11.1.min.js"></script>
 7     <script src="framework/three.js"></script>
 8     <script src="framework/OrbitControls.js"></script>
 9     <title>three</title>
10     <script>
11         window.onload = function() {
12             // 创建场景元素
13             const scene = new THREE.Scene();
14 
15             // 创建网个模型
16             const geometry = new THREE.BoxGeometry(100, 100, 100); //长宽高 几何对象
17             const material = new THREE.MeshLambertMaterial({
18                 color: 0xff0000
19             }); //颜色 材质对象
20             // 模型
21             const mesh = new THREE.Mesh(geometry, material);
22             scene.add(mesh); // 加入到场景
23 
24             // 添加灯光
25             const Light = new THREE.PointLight(0xffffff); // 点光源
26             Light.position.set(300, 400, 200);
27             scene.add(Light); //添加灯光进去
28 
29             //加入一个环境光
30             scene.add(new THREE.AmbientLight(0x333333));
31 
32             // 添加相机
33             const camera = new THREE.PerspectiveCamera(40, 800 / 600, 1, 1000);
34             camera.position.set(200, 200, 200); //相机位置
35             camera.lookAt(scene.position); //向着场景中心
36 
37             // 创建渲染器
38             const renderer = new THREE.WebGLRenderer();
39             renderer.setSize(800, 600); // 渲染器尺寸
40             document.body.appendChild(renderer.domElement) // 加入文档
41 
42             // 渲染
43             function render() {
44                 renderer.render(scene, camera); //传入场景和相机
45             }
46             render();
47 
48             // 创建相机控制器,需要引入库  传入对象
49             const controls = new THREE.OrbitControls(camera); //传入这个相机,鼠标操作的时候相机控制器会改变相机的参数
50             // 加入事件监听处理
51             controls.addEventListener('change', render); //改变参数之后同时渲染场景
52 
53         }
54     </script>
55 </head>
56 
57 <body>
58     <div id="app"> </div>
59 </body>
60 
61 
62 </html>

哦,这其实只是个正方形!

原文地址:https://www.cnblogs.com/hasubasora/p/7407275.html