zoukankan      html  css  js  c++  java
  • 通过canvas实现描点连线功能

    先上图

    <canvas id="canvas" width="1400" height="800" style="background:white;"><canvas>
    

      

     var arr = [{
                            NO: 0,
                            name: "p0",
                            x: 854,
                            y: 96
                        },
                        {
                            NO: 1,
                            name: "p1",
                            x: 854,
                            y: 180
                        },
                        {
                            NO: 2,
                            name: "p2",
                            x: 704,
                            y: 210
                        },
                        {
                            NO: 3,
                            name: "p3",
                            x: 644,
                            y: 260
                        },
                        {
                            NO: 4,
                            name: "p4",
                            x: 334,
                            y: 296
                        },
                        {
                            NO: 5,
                            name: "p5",
                            x: 204,
                            y: 506
                        },
                        {
                            NO: 6,
                            name: "p5",
                            x: 234,
                            y: 516
                        },
                        {
                            NO: 7,
                            name: "p5",
                            x: 294,
                            y: 506
                        },
                        {
                            NO: 8,
                            name: "p5",
                            x: 394,
                            y: 506
                        },
                        {
                            NO: 9,
                            name: "p5",
                            x: 488,
                            y: 506
                        },
                        {
                            NO: 10,
                            name: "p5",
                            x: 552,
                            y: 506
                        },
                        {
                            NO: 11,
                            name: "p5",
                            x: 676,
                            y: 506
                        },
                        {
                            NO: 12,
                            name: "p5",
                            x: 680,
                            y: 606
                        },
                        {
                            NO: 13,
                            name: "p5",
                            x: 600,
                            y: 590
                        },
                        {
                            NO: 14,
                            name: "p5",
                            x: 608,
                            y: 560
                        },
                        {
                            NO: 15,
                            name: "p5",
                            x: 580,
                            y: 570
                        },
                        {
                            NO: 16,
                            name: "p5",
                            x: 570,
                            y: 570
                        },
                        {
                            NO: 17,
                            name: "p5",
                            x: 560,
                            y: 570
                        },
                        {
                            NO: 18,
                            name: "p5",
                            x: 550,
                            y: 570
                        }
                    ]
    
    
    var context = canvas.getContext('2d')
    
    function draw() {
                        context.clearRect(0, 0, canvas.width, canvas.height)
                        context.beginPath()
                        context.moveTo(arr[0].x, arr[0].y)
                    
                        context.stroke()
                        context.beginPath()
                        context.moveTo(arr[0].x, arr[0].y)
                       
    
                        for (var j = 0; j < arr.length; j++) {
    
                            context.lineTo(arr[j].x, arr[j].y)
                        }
                        
                        context.stroke()
    
                        for (var k = 0; k < arr.length; k++) {
                            console.log(arr[k].name)
                            drawDot(arr[k], color16())
                        }
                        
                        drawDot(control, 'red')
                    }
    
    function color16() { //十六进制颜色随机
                        var r = Math.floor(Math.random() * 256);
                        var g = Math.floor(Math.random() * 256);
                        var b = Math.floor(Math.random() * 256);
                        var color = '#' + r.toString(16) + g.toString(16) + b.toString(16);
                        return color;
                    }
    
                    function drawDot(pos, color) {
                        context.beginPath()
                    
                        var fillImg = new Image();
                        fillImg.src = '2.png';
                        fillImg.onload = function () {
                            context.drawImage(fillImg, pos.x, pos.y, 10, 15);
                        }
                        context.closePath()
                        context.fill()
                        context = canvas.getContext("2d");
                        context.font = "15px 微软雅黑"; //字体
                        context.textBaseline = "middle"; //竖直du对齐
                        context.textAlign = "center"; //水平对zhi齐 
                        context.fillStyle = color;
                        context.fillText(pos.NO, pos.x, pos.y, 15);
    
                    }
    
                    function captureMouse(element) {
                        var mouse = {
                            x: 0,
                            y: 0
                        }
                        element.addEventListener('mousemove', function (event) {
                            var x = event.pageX - element.offsetLeft
                            var y = event.pageY - element.offsetTop
                            mouse.x = x
                            mouse.y = y
                        })
                        return mouse
                    }
    

      

  • 相关阅读:
    第6章 解决问题 6-1 机器学习解决问题(1)
    第5章 常见的算法和分类 5-2 机器学习常见算法和分类(2)
    Linux中Shell数组的笔记
    Linux中Shell数组的笔记
    Linux中Shell中取消变量和特殊变量的笔记
    Linux中Shell中取消变量和特殊变量的笔记
    Linux实现MYSQl数据库的定时备份
    Linux中su和sudo的用法整理
    Linux用户组笔记整理
    Linux 用户管理命令笔记
  • 原文地址:https://www.cnblogs.com/h5it/p/14489585.html
Copyright © 2011-2022 走看看