Come posso rilevare quando l'utente fa clic all'interno della bolla rossa?Rileva se l'utente fa clic all'interno di un cerchio
Non dovrebbe essere come un campo quadrato. Il mouse deve essere veramente all'interno del cerchio:
Ecco il codice:
<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>
Se si conosce la posizione del cursore e la posizione e la dimensione del cerchio (ed è davvero un cerchio, non i puntini di sospensione), è solo una semplice calcolo geometrico per determinare se il punto (il cursore) si trova all'interno del cerchio o meno. http://stackoverflow.com/questions/481144/equation-for-testing-if-a-point-is-inside-a-circle – qJake
Sentito parlare di seno e coseno ...? – CBroe
@CBroe Trig non è necessario in questo caso, né sarebbe utile. –