通过鼠标拾取任意点并标识坐标,动态绘制该点与上一点坐标

<!DOCTYPE html>
<html>
<head>
    <title></title>
  <style type="text/css">
  html,body{
    margin: 0;
    padding: 0;
  }
    #dot1,#dot2{
      display:none;
      position: fixed;
      border:1px solid red;
    }
  </style>
</head>
<body>
  <div id = "dot1"></div>
  <div id = "dot2"></div>
    <canvas id="canvas" width="1000px" height="700px">
    </canvas>
<script type="text/javascript">
  var x1,y1,x2,y2;
    window.onclick=function(event){
      var currentX = event.clientX;
      var currentY = event.clientY;
      if(x1 == undefined){
        var a = currentX;
        var b = currentY;
        x1 = a;
        y1 = b;
        document.getElementById('dot1').style.top = y1 + 'px';
        document.getElementById('dot1').style.left = x1 + 'px';
        document.getElementById('dot1').style.display = 'block';
        alert("该点坐标为:"+ x1 +","+y1);
      }else{
        if(x2 == undefined){
          x2 = currentX;
          y2 = currentY;
          alert("该点坐标为:"+ currentX +","+currentX);
        }else{
          x1 = x2;
          y1 = y2;
          x2 = currentX;
          y2 = currentY;
          document.getElementById('dot1').style.top = y1 + 'px';
          document.getElementById('dot1').style.left = x1 + 'px';
          document.getElementById('dot1').style.display = 'block';
          alert("该点坐标为:"+ currentX +","+currentX);
        }
        line =Math.pow(eval(x2-x1)*eval(x2-x1)+eval(y2-y1)*eval(y2-y1),0.5).toFixed(2);
        document.getElementById('dot2').style.top = y2 + 'px';
        document.getElementById('dot2').style.left = x2 + 'px';
        document.getElementById('dot2').style.display = 'block';
        var canvas = document.getElementById('canvas');
        canvas.height = canvas.height;
        var context = canvas.getContext('2d');
        context.moveTo(x1,y1);
        context.lineTo(currentX,currentY);
        context.lineWidth = 2;
        context.strokeStyle = "#000";
        context.stroke();
        alert("两点间的距离为"+line);

      }
    };
  </script>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值