【发布时间】:2013-05-23 11:18:17
【问题描述】:
如何检测用户何时在红色气泡内点击?
它不应该是一个方形的场地。鼠标必须真的在圆圈内:
代码如下:
<canvas id="canvas" width="1000" height="500"></canvas>
<script>
var canvas = document.getElementById("canvas")
var ctx = canvas.getContext("2d")
var w = canvas.width
var h = canvas.height
var bubble = {
x: w / 2,
y: h / 2,
r: 30,
}
window.onmousedown = function(e) {
x = e.pageX - canvas.getBoundingClientRect().left
y = e.pageY - canvas.getBoundingClientRect().top
if (MOUSE IS INSIDE BUBBLE) {
alert("HELLO!")
}
}
ctx.beginPath()
ctx.fillStyle = "red"
ctx.arc(bubble.x, bubble.y, bubble.r, 0, Math.PI*2, false)
ctx.fill()
ctx.closePath()
</script>
【问题讨论】:
-
如果你知道光标的位置和圆的位置和大小(而且它确实是圆,不是省略号),那么只要简单的几何计算就可以确定点(光标)是否在圆圈内。 stackoverflow.com/questions/481144/…
-
听说过 sinus 和 cosinus ...?
-
@CBroe Trig 在这种情况下不需要,也不会有用。
-
不知道为什么会被赞成。它没有显示任何研究工作,并且已经被问多次次。投票结束。
标签: javascript html events canvas click