Javascript 使用“单击”选项在画布中绘制圆

Javascript 使用“单击”选项在画布中绘制圆,javascript,jquery,html,canvas,Javascript,Jquery,Html,Canvas,我编写了以下javascript代码: <script> var canvas = document.getElementById("canvas"); var canvasOffset = $("#canvas").offset(); var offsetX = canvasOffset.left; var offsetY = canvasOffset.top; function handleMous

我编写了以下javascript代码:

<script>
        var canvas = document.getElementById("canvas");
        var canvasOffset = $("#canvas").offset();
        var offsetX = canvasOffset.left;
        var offsetY = canvasOffset.top;

        function handleMouseDown(e) {
            mouseX = parseInt(e.clientX - offsetX);
            mouseY = parseInt(e.clientY - offsetY);
            $("#downlog").html("Down: " + mouseX + " / " + mouseY);
        }

        $("#canvas").mousedown(function(e) {
            handleMouseDown(e);
        });

    </script>

var canvas=document.getElementById(“canvas”);
var canvasOffset=$(“#画布”).offset();
var offsetX=canvasOffset.left;
var offsetY=canvasOffset.top;
功能手柄向下(e){
mouseX=parseInt(e.clientX-offsetX);
mouseY=parseInt(e.clientY-offsetY);
$(“#downlog”).html(“Down:“+mouseX+”/“+mouseY”);
}
$(“#画布”).mousedown(函数(e){
把手向下(e);
});
在这段代码中,我通过单击鼠标来检测坐标。 我想在这个坐标周围画一个圆圈,当我点击圆圈时,做一些事情(例如打开google.com)


注意:我使用html 4中的jquery和area map来实现这一点,但在画布中我没有任何想法。

我无法判断您是否要绘制一个圆,是否要在圆中检测鼠标单击,或者两者都要

  var context = canvas.getContext('2d');
  var centerX = canvas.width / 2;
  var centerY = canvas.height / 2;
  var radius = 70;

  context.beginPath();
  context.arc(centerX, centerY, radius, 0, 2 * Math.PI, false);
  context.fillStyle = 'green';
  context.fill();
  context.lineWidth = 5;
  context.strokeStyle = '#003300';
  context.stroke();
画一个圆圈:

var context=canvas.getContext("2d");
ctx.beginPath();

//Draw a circle around a mouse click
//ctx.arc(x-position, y-position, radius, start-angle, end-angle);
ctx.arc(mouseX, mouseY, 30, 0, 2*Math.PI);
ctx.stroke();
//circleX and circleY are the coordinats of the center
var y = mouseY - circleY;
var x = mouseX - circleX;
var dist = Math.sqrt(y*y + x*x);

if (dist < circleRadius) {
  // Do whatever you want to do
}
检测圆内的鼠标单击:

var context=canvas.getContext("2d");
ctx.beginPath();

//Draw a circle around a mouse click
//ctx.arc(x-position, y-position, radius, start-angle, end-angle);
ctx.arc(mouseX, mouseY, 30, 0, 2*Math.PI);
ctx.stroke();
//circleX and circleY are the coordinats of the center
var y = mouseY - circleY;
var x = mouseX - circleX;
var dist = Math.sqrt(y*y + x*x);

if (dist < circleRadius) {
  // Do whatever you want to do
}
//circleX和circleY是中心的协调人
变量y=鼠标-圆圈;
var x=鼠标-圆环;
var dist=数学sqrt(y*y+x*x);
if(dist
我无法判断您是否要绘制一个圆,是否要在圆中检测鼠标单击,或者两者都要

画一个圆圈:

var context=canvas.getContext("2d");
ctx.beginPath();

//Draw a circle around a mouse click
//ctx.arc(x-position, y-position, radius, start-angle, end-angle);
ctx.arc(mouseX, mouseY, 30, 0, 2*Math.PI);
ctx.stroke();
//circleX and circleY are the coordinats of the center
var y = mouseY - circleY;
var x = mouseX - circleX;
var dist = Math.sqrt(y*y + x*x);

if (dist < circleRadius) {
  // Do whatever you want to do
}
检测圆内的鼠标单击:

var context=canvas.getContext("2d");
ctx.beginPath();

//Draw a circle around a mouse click
//ctx.arc(x-position, y-position, radius, start-angle, end-angle);
ctx.arc(mouseX, mouseY, 30, 0, 2*Math.PI);
ctx.stroke();
//circleX and circleY are the coordinats of the center
var y = mouseY - circleY;
var x = mouseX - circleX;
var dist = Math.sqrt(y*y + x*x);

if (dist < circleRadius) {
  // Do whatever you want to do
}
//circleX和circleY是中心的协调人
变量y=鼠标-圆圈;
var x=鼠标-圆环;
var dist=数学sqrt(y*y+x*x);
if(dist
我会将Raphael.js添加到您的js库堆栈中。它使绘画变得非常容易。那么你想看看是否有用户在你的圈子里点击了?我会将Raphael.js添加到你的js库堆栈中。它使绘画变得非常容易。所以你想看看是否有用户在你的圈子里点击了?