CANVAS接收绘图点位置 - HTML5 Canvas

时间:2017-12-23 21:03:50

标签: javascript html5 canvas

在绘图停止后,我需要从画布中接收绘图已结束的位置 在画布中,可以接收绘图点坐标吗?

circle

        Number.prototype.toRad = function () { return this * Math.PI / 180; }
    var num = 0;
    var qwerty = function(){
     setTimeout(function(){
       num++;
       drawOnCanvas7(num);
       if(num<=70){
         qwerty();
        }
      }, 100);
    }
    qwerty();
    function drawOnCanvas7(v){
	   v = parseInt(v);
	   v = v>100?100:v<=0?0:v;
     var onePrc = 360/100;
     v = v * onePrc;  
 	var canvas2 = document.getElementById('tutorial-7');
    canvas2.width = 210;
 	canvas2.height = 210;
  var ctx = canvas2.getContext("2d");
   if(ctx){
    ctx.lineWidth = 5;
    ctx.strokeStyle = "black";
    ctx.save();
    ctx.strokeStyle = "yellow";
    ctx.beginPath();
  	ctx.arc(105, 105, 100, (0).toRad(), (v).toRad());
    ctx.stroke();
  }
}
canvas { 
 
  display:block;
}
<canvas id="tutorial-7" width="100" height="100" style="transform:rotate(-90deg)">
 Ваш браузер не поддерживает CANVAS
</canvas>

1 个答案:

答案 0 :(得分:0)

您可以将结果坐标保存在如下变量中:

function drawOnCanvas7(v){
v = parseInt(v);
v = v>100?100:v<=0?0:v;
var onePrc = 360/100;
v = v * onePrc;  
var canvas2 = document.getElementById('tutorial-7');
canvas2.width = 210;
canvas2.height = 210;
var ctx = canvas2.getContext("2d");
var x_end = 105 + Math.cos((v).toRad()) * 100;
var y_end = 105 + Math.sin((0).toRad()) * 100;
if(ctx){
ctx.lineWidth = 5;
ctx.strokeStyle = "black";
ctx.save();
ctx.strokeStyle = "yellow";
ctx.beginPath();
ctx.arc(105, 105, 100, (0).toRad(), (v).toRad());
ctx.stroke();
}
}