1. 下载JTopo js http://www.jtopo.com/download.html

2. 引入js文件,引入jtopo之前引入jQuery

3. JTopo Demo -- 圆形布局

步骤:  获取canvas ——> 创建stage ——> 创建scene添加的stage ——> 创建节点添加到scene

$(document).ready(function(){
var canvas = document.getElementById('canvas');
var stage = new JTopo.Stage(canvas);
//显示工具栏
showJTopoToobar(stage);
var scene = new JTopo.Scene();
stage.add(scene);
scene.background = './img/bg.jpg'; var cloudNode = new JTopo.Node('root');
cloudNode.setSize(30, 26);
cloudNode.setLocation(360,230);
cloudNode.layout = {type: 'circle', radius: 150}; scene.add(cloudNode); for(var i=1; i<4; i++){
var node = new JTopo.CircleNode('host' + i);
node.fillStyle = '200,255,0';
node.radius = 15;
node.setLocation(scene.width * Math.random(), scene.height * Math.random());
node.layout = {type: 'circle', radius: 80}; scene.add(node);
var link = new JTopo.Link(cloudNode, node);
scene.add(link); for(var j=0; j<6; j++){
var vmNode = new JTopo.CircleNode('vm-' + i + '-' + j);
vmNode.radius = 10;
vmNode.fillStyle = '255,255,0';
vmNode.setLocation(scene.width * Math.random(), scene.height * Math.random());
scene.add(vmNode);
scene.add(new JTopo.Link(node, vmNode));
}
}
JTopo.layout.layoutNode(scene, cloudNode, true); scene.addEventListener('mouseup', function(e){
if(e.target && e.target.layout){
JTopo.layout.layoutNode(scene, e.target, true);
}
});
});

4. 总结的问题:

  1. 关于node的layout,目前我知道有 tree,circle 两种,用法如下:

node.layout = {type: 'tree', direction: direction, width: 180, height: 80};

  2. 关于container,也就是分组容器。container需要添加到scene中,container中添加node,需要将node添加到container以及scene中。例子如下:

var stage;
$(document).ready(function(){
var canvas = document.getElementById('canvas');
stage = new JTopo.Stage(canvas);
//显示工具栏
showJTopoToobar(stage);
var scene = new JTopo.Scene();
scene.background = './img/bg.jpg';
stage.add(scene); // 不指定布局的时候,容器的布局为自动(容器边界随元素变化)
var container = new JTopo.Container('边界自动变化');
container.textPosition = 'Middle_Center';
container.fontColor = '100,255,0';
container.font = '18pt 微软雅黑';
container.borderColor = '255,0,0';
container.borderRadius = 30; // 圆角
scene.add(container); for(var i=0; i<5; i++){
var node = new JTopo.Node("A_"+i);
node.textPosition = "Middle_Center";
node.setLocation(300+ Math.random() * 300, 200+ Math.random() * 200);
scene.add(node);
container.add(node);
}
scene.add(new JTopo.Link(container.childs[0], container.childs[1]));
scene.add(new JTopo.Link(container.childs[2], container.childs[3])); // 流式布局(水平、垂直间隔均为10)
var flowLayout = JTopo.layout.FlowLayout(10, 10); // 网格布局(4行3列)
var gridLayout = JTopo.layout.GridLayout(4, 3); var container2 = new JTopo.Container('点击切换布局');
container2.layout = flowLayout;
container2.fillColor = '10,10,100';
container2.setBound(10, 10, 300, 200);
scene.add(container2); for(var i=0; i<12; i++){
var node = new JTopo.Node("F_" + i);
node.textPosition = "Middle_Center";
scene.add(node);
container2.add(node);
} container2.click(function(){
if(container2.layout === flowLayout){
container2.layout = gridLayout;
}else{
container2.layout = flowLayout;
}
});
});

  3.关于link的样式:

简单连线 Link
折线 FoldLink
二次折线 FlexionalLink
曲线 CurveLink

还在探索中,持续更新。。。

❤ 自定义绘制带有告警的节点:

 container容器是个非常好用的东西。我们需要绘制 1个container + 2个节点

 

  

JTopo 使用的更多相关文章

  1. JS绘制拓扑图示例 (JTopo)

    目前在做的项目是渔政的监控,需要用到的设备包括雷达,光电,站点信息等,想要更直观的展现设备之间的连接关系和状态信息,这时候需要画一张拓扑图 在做拓扑图之前,首先要学习一下,html里面另一个比较常用的 ...

  2. JTopo使用心得

    因为工作关系,最近用到了拓扑图,找了一溜工具后,发现了这个--JTopo,纯国产而且免费 当然了如果你英文水平足够好的话.也可以看看这些英文的做拓扑图的工具,以下网站出自知乎回答:开源HTML5 绘图 ...

  3. 基于jTopo的拓扑图设计工具库ujtopo

    绘制拓扑图有很多开源的工具,知乎上也有人回答了这个问题: https://www.zhihu.com/question/41026400/answer/118726253 ujtopo是基于jTopo ...

  4. 5-15 笔记 jtopo使用

    Jtopo的核心对象有6个,分别是Stage(舞台对象),Scene(场景对象),Node(节点对象),Link(连线对象),Container(容器对象),Effect.Animate(动画效果) ...

  5. 网络拓扑图js插件——jTopo应用

    jTopo官网:http://www.jtopo.com/ 1.特点: 基于HTML5 Canvas,不依赖其他库 2.应用: 效果: 源码github地址 在HTML页面中引入jtopo.min.j ...

  6. 如何在Vue-cli项目中使用JTopo

    1.前言 jTopo(Javascript Topology library)是一款完全基于HTML5 Canvas的关系.拓扑图形化界面开发工具包.其体积小,性能优异,由一群开发爱好者来维护.唯一感 ...

  7. jTopo HTML5 Canvas 画图组件

    jTopo是什么? jTopo(Javascript Topology library)是一款完全基于HTML5 Canvas的关系.拓扑图形化界面开发工具包. jTopo关注于数据的图形展示,它是面 ...

  8. jTopo介绍(一)

    jTopo(Javascript Topology library)是一款完全基于HTML5 Canvas的关系.拓扑图形化界面开发工具包.jTopo关注于数据的图形展示,它是面向开发人员的,需要进行 ...

  9. vue 集成jTopo 处理方法

    jTopo 帮助说明网站 http://www.jtopo.com/index.html 使用例子: http://www.jtopo.com/demo/helloworld.html 不建议直接安装 ...

随机推荐

  1. wxWidgets:菜单

    和菜单有关的类主要有两个:wxMenuItem和wxMenu.wxMenuItem用于表示一个菜单项,而wxMenu是wxMenuItem的弹出或下拉列表. 现在让我们看看如何给我们的框架类加上菜单: ...

  2. 【Spring学习笔记-MVC-13.2】Spring MVC之多文件上传

    作者:ssslinppp       1. 摘要 前篇文章讲解了单文件上传<[Spring学习笔记-MVC-13]Spring MVC之文件上传>http://www.cnblogs.co ...

  3. appium+python自动化38-adb shell按键操作(input keyevent)

    前言 接着上篇介绍input里面的按键操作keyevent事件,发送手机上常用的一些按键操作 keyevent 1.keyevent事件有一张对应的表,可以直接发送对应的数字,也可以方式字符串,如下两 ...

  4. 1073 Scientific Notation (20 分)

    1073 Scientific Notation (20 分) Scientific notation is the way that scientists easily handle very la ...

  5. linux nfs怪现象——软连接、文件属主的变更

    怪现象:proxmox:/etc-asterisk# ls sip.confsip.confproxmox:/etc-asterisk# more sip.confsip.conf: No such ...

  6. autocomplete 自动填充 combobox

    目录(?)[-] autocomplete有两种 一种 是 jquery ui里的 autocomplete httpjqueryuicomautocomplete 另一种是 ASPNET AJAX ...

  7. 批处理-通过mono把c#编译成dll

    ::copyright@cjy @echo off ::mcs.exe address set addrMcs=D:\Program Files\Unity\Editor\Data\MonoBleed ...

  8. ubuntu18.04修改时区

    运行如下命令: sudo tzselect 然后选择亚洲Asia,继续选择中国China,最后选择北京Beijing. 然后创建时区软链 sudo ln -sf /usr/share/zoneinfo ...

  9. 简单工厂法( Factory Method)

    工厂方法 (Factory Method) Define an interface for creating an object ,but let subclasses decide which cl ...

  10. 外星人完事了,开始python的matplotlib玩转

    外星人完事了,开始python的matplotlib玩转 看书上的例子,在win下安装比较麻烦 今天用pip尝试了一下 pip install matplotlib 然后等待即可 安装完毕后 在pyt ...