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:动态EVENT绑定
我们已经看到如何使用静态EVENT TABLE来处理EVENT:但这种方式不够灵活.下面我们来看看如何在Event和处理函数间实现动态Bind. 仍然以那个简陋的Frame作为例子. 首先删除所有的静 ...
- 一些css杂项笔记
div[class*="col-"]{ background-color: gold; border: 1px solid #ccc; } //给class开头等于col-的div ...
- 汇编,浮点运算符,fldpi,fmul等指令说明.
协处理器指令系统 协处理器共有68条不同的指令,汇编程序在遇到协处理器指令助记符时,都会将其转换成机器语言的ESC指令,ESC指令代表了协处理器的操作码. 协处理器指令在执行过程中,需要访问内存单元时 ...
- nginx二进制编译-启动脚本编写
首先先把这个文件上传到root目录下,并解压 #tar zxf nginx-1.11.2.tar.gz 写脚本 # vi nginx-running.sh 内容如下 #!/bin/bash #chkc ...
- 【BZOJ】4517 [Sdoi2016]排列计数(数学+错排公式)
题目 传送门:QWQ 分析 $ O(nlogn) $预处理出阶乘和阶乘的逆元,然后求组合数就成了$O(1)$了. 最后再套上错排公式:$ \huge d[i]=(i-1) \times (d[i-1] ...
- 搭建MySQL高可用负载均衡集群(收藏)
https://www.cnblogs.com/phpstudy2015-6/p/6706465.html
- 一,Android Studio笔记
转自:https://developer.android.com/studio/intro/index.html 一.界面 Android Studio 主窗口由图 3 标注的几个逻辑区域组成. 工具 ...
- SQL Server数据库定时备份解决方案
SQL Server数据库定时备份解决方案 1.本方案采用软件为:SQLBackupAndFTP 10.0.3 版本,压缩包自带注册机,请自行破解. 2.软件截图如下: 3.功能说明:自动定时备份相关 ...
- 尝试了一些时间,最简单的apache上设置用IP访问一个虚拟目录
就是其实新建一个 多域名访问的设置 <VirtualHost *:80> DocumentRoot /var/www/ ServerName IP</VirtualHost> ...
- Dark theme for Texstudio - TeX - LaTeX
Dark theme for Texstudio ~~~ 1.window系统如下操作 ~~~ 1. texstudio的配置文件texstudio 的配置文件在~/.config/texstudi ...