关于前端:三维拓扑元素介绍之TNode

上一篇介绍了了三维topo的基本概念。 本篇持续介绍三维拓扑的相干元素,三维拓扑的次要元素包含:

  • TNode 节点元素
  • TLink 连线元素
  • TGroup 分组元素
  • TSubnet 子网元素

本文次要介绍TNode的应用阐明。

TNode

TNode示意拓扑图中一个节点对象。最终体现是一个三维对象。TNode的结构如下:

let node = new eg.TNode(params);
node.setName(name);

其中params传递的是结构一个TNode所须要的参数。其中,能够通过图片,根本形态,obj模型或者gltf模型来结构。
而name示意TNode的名称,名称会在节点顶部用冒泡的形式进行显示。

应用图片结构TNode

应用一张图片结构TNode,其中的体现是一个Sprite对象。如下代码所示:

let imageNode2 = new eg.TNode({
     image: "./images/access.png",
     width:130,
     height:80,
 });
imageNode2.setName("imageNode2");

其中width和height为可选参数,当不指定width或者height的时候,默认应用图片自身的width和height。最终显示成果如下图所示:

应用根本形态结构TNode

能够通过立方体,球体,圆柱体,立体等结构TNode。示例代码如下:

let cubeNode = new eg.TNode({
  shape:"cube",
  width:100,
  height:100,
  depth:100
});
cubeNode.setName("cube node");

其中shape反对如下选项:

  • cube 示意立方体,对应的参数是width,height,depth
  • sphere 示意球体,对应的参数radius
  • cylinder 示意圆柱体,对应的参数有radiusTop,radiusBottom,height
  • plane 示意立体,对应的参加有width,height

    let planeNode = new eg.TNode({
      shape:"plane",
      width:100,
      height:100
    });
    planeNode.p(-100,0,0);
    planeNode.setName("plane node");
    
    let sphereNode = new eg.TNode({
          shape:"sphere",
          radius:50
    })
    sphereNode.p(100,0,0);
    sphereNode.setName("Sphere Node");
    let cylinderNode = new eg.TNode({
      shape:"cylinder",
      radiusTop:50,
      radiusBottom:50,
      height:50,
    })
    cylinderNode.setName("Cylinder Node");

显示成果如下:

应用obj模型结构TNode

应用obj模型文件结构TNode,最终的体现是一个Mesh对象的成果。如下代码所示:

let objNode = new eg.TNode({
  objPath: "./assets/objs/dingshi/dingshi.obj",
  mtlPath: "./assets/objs/dingshi/dingshi.mtl",
})
objNode.setName("obj node");

其中objPath和mtlPath指定obj模型文件的门路。 最终成果如下所示:

应用gltf模型结构TNode

应用gltf模型文件结构TNode,最终的体现是一个Mesh对象的成果。如下代码所示:

let gltfNode = new eg.TNode({
  gltfPath: './assets/gltf/icon.gltf',
});
gltfNode.setName("gltf node");
gltfNode.setScale(12);
gltfNode.p(100, 100, 100);

其中gltfPath指定gltf模型文件的门路,最终显示成果如下:

总结

本文介绍了TNode的各种构造方法,并介绍了TNode的setName办法。通过文中的构造方法,能够满足绝大多数的结构须要。

欢送关注公众号:”图易可视化”。

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理