Three.js中文网 Three.js中文网
首页
免费视频
系统课 (opens new window)
  • Three.js基础课程
  • Vue3+Threejs 3D可视化
  • Threejs进阶课程
  • 展厅3D预览漫游
  • Threejs Shader
  • Blender建模基础
  • Three.js基础课程(旧版本) (opens new window)
  • 文章
WebGPU教程
  • WebGL教程
  • WebGL教程(旧版本) (opens new window)
3D案例
  • 本站部署(打开快) (opens new window)
  • 原英文官网文档 (opens new window)
首页
免费视频
系统课 (opens new window)
  • Three.js基础课程
  • Vue3+Threejs 3D可视化
  • Threejs进阶课程
  • 展厅3D预览漫游
  • Threejs Shader
  • Blender建模基础
  • Three.js基础课程(旧版本) (opens new window)
  • 文章
WebGPU教程
  • WebGL教程
  • WebGL教程(旧版本) (opens new window)
3D案例
  • 本站部署(打开快) (opens new window)
  • 原英文官网文档 (opens new window)
Web3D系统课程视频
  • 0.学前说明

  • 1.Three.js快速入门

  • 2.几何体BufferGeometry

  • 3.模型对象、材质

  • 4.层级模型

  • 5.顶点UV坐标、纹理贴图

  • 6.加载外部三维模型(gltf)

  • 7.PBR材质与纹理贴图

  • 8.渲染器和前端UI界面

  • 9.生成曲线、几何体

  • 10.相机基础

  • 11.光源和阴影

  • 12.精灵模型Sprite

  • 13.后处理EffectComposer

  • 14.射线拾取模型

  • 15.场景标注标签信息

    • 1. CSS2DRenderer(HTML标签)
    • 2. HTML标签遮挡Canvas画布事件
    • 3. Canvas尺寸变化(HTML标签)
    • 4. 标签位置不同设置方式
    • 5. 标签位置(标注工厂设备)
      • 6. 标签指示线或箭头指向标注点
      • 7. 鼠标选中模型弹出标签(工厂)
      • 8. 单击按钮关闭HTML标签
      • 9. CSS3DRenderer渲染HTML标签
      • 10. CSS3批量标注多个标签
      • 11. 精灵模型Sprite作为标签
      • 12. Sprite标签(Canvas作为贴图)
    • 16.关键帧动画

    • 17.动画库tween.js

    • Three.js教程
    • 15.场景标注标签信息
    郭隆邦
    2023-03-13
    目录

    5. 标签位置(标注工厂设备)

    # 标签位置(标注工厂设备)

    下面以一个工厂设备模型的标注为例,给大家演示工厂设备标签的位置如何设置。

    # 回顾:CSS2模型对象继承父对象位置

    在上节课“圆锥标注案例中”给大家说过,HTML标签对应的CSS2模型对象,如果作为一个模型的子对象,默认标注在模型的局部坐标系原点位置。

    const tag = new CSS2DObject(div);
    //标签tag作为obj子对象,默认标注在obj的局部坐标系坐标原点
    obj.add(tag);
    

    # 模型软件中工厂设备局部坐标系

    一个模型本身是有尺寸的,你想把模型标签标在模型那个具体位置,可以在三维软件中,把该模型的局部坐标系坐标原点设置在哪里。

    本节课课件中提供的gltf工厂模型,有两个相同的形状的设备,名字分别为设备A和设备B,为了给大家演示标签功能,设备A和设备B的局部坐标系相对自身位置不同,下面分别进行标注。

    你可以先尝试利用前面学习过的知识,获取某个模型设备进行标注,然后在跟着视频学习。

    # threejs获取工厂设备,查看局部坐标系

    loader.load("../工厂.glb", function (gltf) {
        const obj = gltf.scene.getObjectByName('设备A');
    })
    
    
    const obj = gltf.scene.getObjectByName('设备B');
    
    // 可视化工厂设备obj的局部坐标系
    const axesHelper = new THREE.AxesHelper(30);
    obj.add(axesHelper);
    

    # CSS2模型对象标注工厂设备

    标签tag作为obj子对象,默认标注在工厂设备obj的局部坐标系坐标原点

    loader.load("../工厂.glb", function (gltf) {
        const tag = new CSS2DObject(div);
        // const obj = gltf.scene.getObjectByName('设备A');
        const obj = gltf.scene.getObjectByName('设备B');
        //标签tag作为obj子对象,默认标注在工厂设备obj的局部坐标系坐标原点
        obj.add(tag);
    })
    

    # 建模软件创建空对象(控制标签位置)

    除了上面调整局部坐标系方式,还有一种更灵活,更方便的标注方式,就是在你的三维建模软件中,任何你想标注的位置,创建一个空对象(空的模型对象,没有任何模型顶点数据,只是一个空对象)。

    不同三维建模软件中,创建空对象方式不同,不过思路是相同。

    loader.load("../工厂.glb", function (gltf) {
        const tag = new CSS2DObject(div);
        // obj是建模软件中创建的一个空对象
        const obj = gltf.scene.getObjectByName('设备B标注');
        // const obj = gltf.scene.getObjectByName('停车场标注');
        //tag会标注在空对象obj对应的位置
        obj.add(tag);
    })
    
    
    4. 标签位置不同设置方式
    6. 标签指示线或箭头指向标注点

    ← 4. 标签位置不同设置方式 6. 标签指示线或箭头指向标注点→

    Theme by Vdoing | Copyright © 2016-2025 豫ICP备16004767号-2
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式