上一篇介绍了了三维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办法。通过文中的构造方法,能够满足绝大多数的结构须要。
欢送关注公众号:"图易可视化"。