• jtopo


    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
    <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE9"/>
    <title>jtopo</title>
    <script src="http://www.jtopo.com/download/jtopo-0.4.8-min.js"></script>
    <style type="text/css">
    #canvas{margin: 10px auto;border: 2px solid #555;}
    .dragg{position: fixed;right: 90px;top: 10px;display: flex;flex-direction: column;}
    </style>
    </head>
    <body>
    <canvas width="850" height="550" id="canvas"
    ondrop="drop(event)" ondragover="allowDrop(event)"></canvas>
    <div class="dragg">
    <img src="images/zd.png" draggable="true" width="62" height="24">
    <img src="images/radar.png" draggable="true" width="44" height="44">
    <img src="images/pie.png" draggable="true" ondragstart="drag(event)" width="52" height="52">
    </div>
    <script type="text/javascript">
    var canvas = document.getElementById('canvas');
    var stage = new JTopo.Stage(canvas); // 创建一个舞台对象
    var scene = new JTopo.Scene(stage); // 创建一个场景对象
    var node = new JTopo.CircleNode("Hello"); // 创建一个节点
    node.setLocation(130,6); // 设置节点坐标
    scene.add(node); // 放入到场景中
    var nodeFrom = new JTopo.Node("from");
    nodeFrom.setLocation(20,20);
    nodeFrom.setSize(10,10);
    nodeFrom.text="abc"
    nodeFrom.fontColor="0,0,0"
    nodeFrom.fillColor="92,204,136"
    scene.add(nodeFrom);
    var nodeTo = new JTopo.Node("To");
    nodeTo.setLocation(100,100);
    nodeTo.setSize(20,10)
    nodeTo.fillColor="125,76,93"
    scene.add(nodeTo);
    var link = new JTopo.Link(nodeFrom, nodeTo); // 增加连线
    var link2 = new JTopo.Link(nodeTo,node)
    var link3 = new JTopo.Link(nodeFrom,node)
    scene.add(link);
    scene.add(link2);
    scene.add(link3);

    /* for(var i=0; i<5; i++){
    var node = new JTopo.Node('Node_' + i);
    node.setLocation(Math.random() * 600, Math.random() * 400);
    scene.add(node);
    }*/
    var beginNode = null;
    var tempNodeA = new JTopo.Node('tempA');;
    tempNodeA.setSize(1, 1);
    var tempNodeZ = new JTopo.Node('tempZ');;
    tempNodeZ.setSize(1, 1);
    var link = new JTopo.Link(tempNodeA, tempNodeZ);
    scene.mouseup(function(e){
    console.log('松开')
    if(e.button == 2){
    scene.remove(link);
    beginNode=null;
    endNode=null;
    return;
    }
    if(e.target != null && e.target instanceof JTopo.Node){
    if(beginNode == null){
    beginNode = e.target;
    scene.add(link);
    tempNodeA.setLocation(e.x, e.y);
    tempNodeZ.setLocation(e.x, e.y);
    }else if(beginNode !== e.target){
    var endNode = e.target;
    var l = new JTopo.Link(beginNode, endNode);
    scene.add(l);
    beginNode = null;
    scene.remove(link);
    }else{
    beginNode = null;
    }
    }else{
    scene.remove(link);
    }
    });
    scene.mousedown(function(e){
    console.log('按下')
    if(e.target == null || e.target === beginNode || e.target === link){
    scene.remove(link);
    }
    });
    scene.mousemove(function(e){
    console.log('一直在移动')
    tempNodeZ.setLocation(e.x, e.y);
    });
    </script>
    <script type="text/javascript">
    function allowDrop(ev)
    {
    ev.preventDefault();
    }
    function drag(ev)
    {
    ev.dataTransfer.setData("Text",ev.target.id);
    }
    function drop(ev)
    {
    ev.preventDefault();
    var data=ev.dataTransfer.getData("Text");
    //ev.target.appendChild(document.getElementById(data));
    var imgUrl = 'images/pie.png'
    var img = new Image()
    img.src = imgUrl
    img.width=img.height=56
    var e = event || window.event
    console.log(e.clientX+','+e.clientY)
    var ex = e.clientX-img.width/2
    var ey = e.clientY-img.height/2
    var nodeImg = new JTopo.Node(data)
    nodeImg.setImage(img.src)
    nodeImg.setSize(img.width,img.height)
    nodeImg.setLocation(ex,ey)
    scene.add(nodeImg)
    }
    </script>
    </body>
    </html>

  • 相关阅读:
    Jmeter 将正则表达式提取的参数传给全局(跨线程组使用变量)
    pod的状态分析
    前端 -- html介绍和head标签
    Python ----- 线程和进程
    网络编程 ------ 基础
    面向对象相关操作
    面向对象 --- 进阶篇
    python --- 面向对象
    python的模块和包的详细说明
    常用模块------时间模块 , random模块 ,os模块 , sys模块
  • 原文地址:https://www.cnblogs.com/q0024/p/14154667.html
Copyright © 2020-2023  润新知