JTopo 使用
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 使用的更多相关文章
- JS绘制拓扑图示例 (JTopo)
目前在做的项目是渔政的监控,需要用到的设备包括雷达,光电,站点信息等,想要更直观的展现设备之间的连接关系和状态信息,这时候需要画一张拓扑图 在做拓扑图之前,首先要学习一下,html里面另一个比较常用的 ...
- JTopo使用心得
因为工作关系,最近用到了拓扑图,找了一溜工具后,发现了这个--JTopo,纯国产而且免费 当然了如果你英文水平足够好的话.也可以看看这些英文的做拓扑图的工具,以下网站出自知乎回答:开源HTML5 绘图 ...
- 基于jTopo的拓扑图设计工具库ujtopo
绘制拓扑图有很多开源的工具,知乎上也有人回答了这个问题: https://www.zhihu.com/question/41026400/answer/118726253 ujtopo是基于jTopo ...
- 5-15 笔记 jtopo使用
Jtopo的核心对象有6个,分别是Stage(舞台对象),Scene(场景对象),Node(节点对象),Link(连线对象),Container(容器对象),Effect.Animate(动画效果) ...
- 网络拓扑图js插件——jTopo应用
jTopo官网:http://www.jtopo.com/ 1.特点: 基于HTML5 Canvas,不依赖其他库 2.应用: 效果: 源码github地址 在HTML页面中引入jtopo.min.j ...
- 如何在Vue-cli项目中使用JTopo
1.前言 jTopo(Javascript Topology library)是一款完全基于HTML5 Canvas的关系.拓扑图形化界面开发工具包.其体积小,性能优异,由一群开发爱好者来维护.唯一感 ...
- jTopo HTML5 Canvas 画图组件
jTopo是什么? jTopo(Javascript Topology library)是一款完全基于HTML5 Canvas的关系.拓扑图形化界面开发工具包. jTopo关注于数据的图形展示,它是面 ...
- jTopo介绍(一)
jTopo(Javascript Topology library)是一款完全基于HTML5 Canvas的关系.拓扑图形化界面开发工具包.jTopo关注于数据的图形展示,它是面向开发人员的,需要进行 ...
- vue 集成jTopo 处理方法
jTopo 帮助说明网站 http://www.jtopo.com/index.html 使用例子: http://www.jtopo.com/demo/helloworld.html 不建议直接安装 ...
随机推荐
- wxWidgets:菜单
和菜单有关的类主要有两个:wxMenuItem和wxMenu.wxMenuItem用于表示一个菜单项,而wxMenu是wxMenuItem的弹出或下拉列表. 现在让我们看看如何给我们的框架类加上菜单: ...
- 【Spring学习笔记-MVC-13.2】Spring MVC之多文件上传
作者:ssslinppp 1. 摘要 前篇文章讲解了单文件上传<[Spring学习笔记-MVC-13]Spring MVC之文件上传>http://www.cnblogs.co ...
- appium+python自动化38-adb shell按键操作(input keyevent)
前言 接着上篇介绍input里面的按键操作keyevent事件,发送手机上常用的一些按键操作 keyevent 1.keyevent事件有一张对应的表,可以直接发送对应的数字,也可以方式字符串,如下两 ...
- 1073 Scientific Notation (20 分)
1073 Scientific Notation (20 分) Scientific notation is the way that scientists easily handle very la ...
- linux nfs怪现象——软连接、文件属主的变更
怪现象:proxmox:/etc-asterisk# ls sip.confsip.confproxmox:/etc-asterisk# more sip.confsip.conf: No such ...
- autocomplete 自动填充 combobox
目录(?)[-] autocomplete有两种 一种 是 jquery ui里的 autocomplete httpjqueryuicomautocomplete 另一种是 ASPNET AJAX ...
- 批处理-通过mono把c#编译成dll
::copyright@cjy @echo off ::mcs.exe address set addrMcs=D:\Program Files\Unity\Editor\Data\MonoBleed ...
- ubuntu18.04修改时区
运行如下命令: sudo tzselect 然后选择亚洲Asia,继续选择中国China,最后选择北京Beijing. 然后创建时区软链 sudo ln -sf /usr/share/zoneinfo ...
- 简单工厂法( Factory Method)
工厂方法 (Factory Method) Define an interface for creating an object ,but let subclasses decide which cl ...
- 外星人完事了,开始python的matplotlib玩转
外星人完事了,开始python的matplotlib玩转 看书上的例子,在win下安装比较麻烦 今天用pip尝试了一下 pip install matplotlib 然后等待即可 安装完毕后 在pyt ...