• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

threejs 3d网络设备拓扑图绘制展示

武飞扬头像
huo611
帮助1

学新通
技能点:threejs,Vue,canvas,几何数学。
展示网站:http://jstopo.top 模型上方图标贴图

function drawFaceIcon(scene,url,obj){//图标
    const geometry = new THREE.PlaneBufferGeometry( 50, 50 );
    const texLoader = new THREE.TextureLoader();
    const texture = texLoader.load(url);
    const material = new THREE.MeshLambertMaterial({
        map: texture,//map表示材质的颜色贴图属性
        side: THREE.DoubleSide,
        transparent: true
    });
    const plane = new THREE.Mesh( geometry, material );
    plane.rotateX(-Math.PI/2);plane.position.set(obj.x, obj.y, obj.z);
    scene.add( plane );
}

canvas文字贴图

const uvCanvasImage = (scene,obj)=>{//旁边文字贴图
    let canvas = document.createElement("canvas");
        canvas.width = 136;canvas.height = 36;
    let ctx = canvas.getContext('2d');
        ctx.font = "22px 黑体";
        // ctx.fillStyle = "#fff";
        ctx.textAlign = "center";
        ctx.textBaseline = "middle";
        ctx.fillText(obj.text, 68, 18);
    let texture = new THREE.CanvasTexture(canvas);
    const geometry = new THREE.PlaneGeometry( 136, 36 );
    const material = new THREE.MeshLambertMaterial({
        map: texture,//map表示材质的颜色贴图属性
        side: THREE.DoubleSide,
        transparent: false
    });
    const plane = new THREE.Mesh( geometry, material );
          plane.rotateX(-Math.PI/2);
          plane.position.set(obj.x, obj.y, obj.z);
    scene.add( plane );
}
学新通

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhfeaaib
系列文章
更多 icon
同类精品
更多 icon
继续加载