Nesta atividade explicarei como se pode detectar cliques do mouse sobre um botão retangular com cantos arredondados.
Para a composição do botão foi utilizado uma função rect() para gerar um retângulo e em suas extremidades foram postas elipses.
Na área do retângulo ( ou dos retângulos caso queira por mais de um para compor seu botão) é só checar se a posição do mouse (mouseX e mouseY) não ultrapassa os limites do tamanho do seu retângulo e se ultrapassar, chegar se foi pressionado com o mousePressed.
Nas bordas circulares, o caso é diferente, temos que tratar as bordas como áreas de uma elipse, então, sabendo disso, identificamos o valor do mouse e do clique até os centros das elipses e buscamos saber se elas são iguais ou menores que o raio; sendo maior, logo o mouse e o clique estarão fora das elipses e se forem menores ou iguais estarão dentro das elipses. Porém para isso precisamos calcular a distância, então usamos o Teorema de Pitágoras ou o cálculo da área de um círculo. Como usei Pitágoras, apenas chequei para ambos os lados circulares a distancia fazendo o uso da hipotenusa e usando-a. Onde a hipotenusa= sqrt(catetoOP*catetoOP+catetoADJ*catetoADJ), e cada cateto era comparado ao Eixo de cada bora elíptica (assim : catetoOP=mouseX-ellipseX;
catetoADJ=mouseY-ellipseY;) fazendo isso para ambos os lados que compõem seu botão circular.
Para a composição do botão foi utilizado uma função rect() para gerar um retângulo e em suas extremidades foram postas elipses.
Na área do retângulo ( ou dos retângulos caso queira por mais de um para compor seu botão) é só checar se a posição do mouse (mouseX e mouseY) não ultrapassa os limites do tamanho do seu retângulo e se ultrapassar, chegar se foi pressionado com o mousePressed.
Nas bordas circulares, o caso é diferente, temos que tratar as bordas como áreas de uma elipse, então, sabendo disso, identificamos o valor do mouse e do clique até os centros das elipses e buscamos saber se elas são iguais ou menores que o raio; sendo maior, logo o mouse e o clique estarão fora das elipses e se forem menores ou iguais estarão dentro das elipses. Porém para isso precisamos calcular a distância, então usamos o Teorema de Pitágoras ou o cálculo da área de um círculo. Como usei Pitágoras, apenas chequei para ambos os lados circulares a distancia fazendo o uso da hipotenusa e usando-a. Onde a hipotenusa= sqrt(catetoOP*catetoOP+catetoADJ*catetoADJ), e cada cateto era comparado ao Eixo de cada bora elíptica (assim : catetoOP=mouseX-ellipseX;
catetoADJ=mouseY-ellipseY;) fazendo isso para ambos os lados que compõem seu botão circular.
Resultado:
Nenhum comentário:
Postar um comentário