博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JS绘制拓扑图示例 (JTopo)
阅读量:6575 次
发布时间:2019-06-24

本文共 1318 字,大约阅读时间需要 4 分钟。

目前在做的项目是渔政的监控,需要用到的设备包括雷达,光电,站点信息等,想要更直观的展现设备之间的连接关系和状态信息,这时候需要画一张拓扑图

在做拓扑图之前,首先要学习一下,html里面另一个比较常用的标签--<Canvas>

 <canvas> 标签定义图形,通过脚本 (通常是JavaScript)来完成,意思即,canvas只是提供一个容器,元素本身是没有绘图能力的,真正形成图形,还是需要通过脚本语言去绘制

知道了这个标签的含义及用法之后,开始网络拓扑图的绘制

首先找到一个开源且免费的拓扑图形包,,前面我写了一个,里面写了两个示例,基本上就可以完成这次拓扑图的设计,我将步骤拆分一下:

首先加载场景:

var canvas = document.getElementById('canvas');        var stage = new JTopo.Stage(canvas);        var scene = new JTopo.Scene();  

编写两个函数,用来定义Node和Link的属性,传入参数即可生成节点:

//定义生成节点函数        function node(x, y, img,name,height,width){            var node = new JTopo.Node(name);            node.setImage('img/control/' + img, true);            node.setLocation(x, y);            node.setSize(height,width);            scene.add(node);            return node;        }        //定义连线函数        function linkNode(nodeA, nodeZ,color){            var link = new JTopo.FoldLink(nodeA, nodeZ);            link.lineWidth = 3;            link.strokeColor = color;            scene.add(link);            return link;        }

然后根据需求生成节点连接即可,效果如下图所示:

 

完整代码如下:

  Demo  

 

2017.9.19日更新:

我写页面一般是用JS写,CSS渲染,在JSP页面中加载,使用过程中发现一个问题,就是给canvas设置属性时,无论是通过CSS渲染还是直接通过style属性添加,JTopo都会出现bug,图像失真且无法拖动,所以建议如果通过JS来编写页面的前端同事,直接通过对象.height/width属性来添加,末尾也无需添加"px“字符串

 

转载于:https://www.cnblogs.com/Liu30/p/7155897.html

你可能感兴趣的文章
IDEA的常用配置一键导入及优化内存
查看>>
keytool 错误 java.io.IOException: incorrect AVA format
查看>>
$.ajax()方法详解(转)
查看>>
java 冒泡排序
查看>>
【CSS】Table样式
查看>>
Qt Quick编程(1)——QML的核心部分ECMAScript
查看>>
js 替换非法字符
查看>>
(转)C# Winform应用程序占用内存较大解决方法整理
查看>>
win10下安装mysql5.6 zip形式步骤
查看>>
Shell:while语句、for语句、if语句
查看>>
HTTP缓存原理及相关知识(2)-CDN
查看>>
eclipse代码编辑区字符串自动转义设置
查看>>
思考XSS攻击和跨站伪造请求CSRF
查看>>
实验四恶意代码分析技术 201421430029
查看>>
神一样的代码:
查看>>
跟KingDZ学HTML5之八 HTML5之Web Save
查看>>
Tornado-Secure cookie and Session
查看>>
font-family:中文字体的英文名称 (宋体 微软雅黑)
查看>>
使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(一)——创建应用
查看>>
WPF 动画执行后属性无法修改
查看>>