2
respostas

Lógica do acerto descreve quadrado

Com a resolução que foi dada, se você clicar fora do círculo menor, também pode receber o alerta. A lógica descreve um quadrado que possui o círculo menor em seu interior. Como fazer com que a área que receba o alerta seja somente a do círculo de menor raio?

2 respostas

Olá Juliana,

para considerar o círculo exato será necessário descobrir a distância entre o ponto que o usuário clicou e o centro do círculo menor. Se esta distância for menor do que o raio deste círculo inferior, então você pode mostrar o alerta.

Para calcular a distância entre as coordenadas do centro do círculo e o ponto em que o usuário clicou, você pode usar o teorema de pitágoras. Aqui um link que mostra a ideia de como fazer esta conta com javascript.

function dispara(evento) {

   var x = evento.pageX - tela.offsetLeft;
   var y = evento.pageY - tela.offsetTop;

  // A equacao da circunferencia para este sistema X,Y 
 //     de coordenadas é: raio² = (x-300)² + (y-200)² .
 //  Um ponto (x,y) estará dentro do circulo se, e somente se, 
 //    suas coordenadas x e y satisfizerem a equacao:
//   (x-300)² + (y-200)² <= raio²


   if( (x-300)*(x-300) + (y-200)*(y-200) <= raio*raio )  
       alert('acertou o alvo');
 }