• 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>

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

  • 相关阅读:
    struts 中 s:iterator 使用注意事项
    redmine 2.5.2 安装后邮件无法发送
    yum提示another app is currently holding the yum lock;waiting for it to exit
    UVA 11809 Floating-Point Numbers
    UVA 1587 Box
    UVA 1583 Digit Generator
    UVA 340 Master-Mind Hints
    UVA 401 Palindromes
    UVA 11175 From D to E and Back
    洛谷P3916 图的遍历
  • 原文地址:https://www.cnblogs.com/hasubasora/p/7407275.html
Copyright © 2020-2023  润新知