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 不建议直接安装 ...
 
随机推荐
- freemarker 宏嵌套nested 的使用
			
转载来源:http://blog.sina.com.cn/s/blog_7e5699790100z59g.html 模板页: <#assign basePath = request.contex ...
 - [C#]反射遍历对象属性
			
/// <summary> /// C#反射遍历对象属性 /// </summary> /// <typeparam name="T">对象类型 ...
 - 【转载】CSS + DIV 实现局部布局
			
HTML CSS + DIV实现局部布局 1.本章教大家掌握2种布局方式: 1)顶部导航菜单布局,效果图: 2)购物版块布局,效果图: 2.技术目标:使用div + ul-li实现导航菜单布局 ...
 - java ssl https 连接详解 生成证书 tomcat keystone
			
java ssl https 连接详解 生成证书 我们先来了解一下什么理HTTPS 1. HTTPS概念 1)简介 HTTPS(全称:Hypertext Transfer Protocol over ...
 - [UE4]Axis Mappings轴映射和动作映射Action Mappings的区别
			
这里添加的映射只能在“玩家角色(Character)”的事件蓝图中使用. 从它们设置和蓝图使用界面就能看出他们的区别
 - 含有不等式约束的优化问题——KKT条件
			
优化问题: 其中, 定义:对于一个不等式约束,如果,那么称不等式约束是处起作用的约束. 定义:设满足,设为起作用不等式约束的下标集: 如果向量:是线性无关的,则称是一个正则点. 下面给出某个点是局部极 ...
 - 第3章 文件I/O(2)_文件I/O系统调用及文件描述符
			
2. 文件I/O系统调用及文件描述符 2.1 文件I/O系统调用 (1)主要函数 函数 功能 函数 功能 open() 打开文件 read() 读取文件 creat() 创建文件 write() 写入 ...
 - dbms_xplan之display_cursor函数的使用
			
DBMS_XPLAN包中display_cursor函数不同于display函数,display_cursor用于显示SQL语句的真实的执行计划,在大多数情况下,显示真实的执行计划有助于更好的分析SQ ...
 - bootstrap file input  多图片上传编辑THINKPHP5
			
{layout name="layout" title="文章添加" /} <form id="defaultForm" role=& ...
 - idea建立一个maven项目
			
前言:虽然之前实习的时候有过spring框架的实践,但是因为基本上都是在已有的基础上进行修修补补,并没有对Spring框架有深刻的理解.所以从今天起,要从零开始对Spring框架进行学习.在此之前,第 ...