Wie kann ich erkennen, wenn der Benutzer in die rote Blase klickt?Erkennen, ob der Benutzer innerhalb eines Kreises klickt
Es sollte nicht wie ein quadratisches Feld sein. Die Maus wirklich innerhalb des Kreises sein muss:
Hier ist der Code:
<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>
Wenn Sie die Position des Cursors und die Position und Größe des Kreises kennen (und es ist wirklich ein Kreis, nicht ein Auslassungszeichen), es ist nur eine einfache geometrische Berechnung, um festzustellen, ob der Punkt (der Cursor) innerhalb des Kreises liegt oder nicht. http://stackoverflow.com/questions/481144/equation-for-testing-if-a-point-is-inside-a-circle – qJake
Hören von Sinus und Cosinus ...? – CBroe
@CBroe Trig wird in diesem Fall nicht benötigt und wäre auch nicht nützlich. –