Java - Comparar area dibujada con posicion del click

 
Vista:

Comparar area dibujada con posicion del click

Publicado por estefania (1 intervención) el 20/02/2007 17:10:11
Quisiera saber si hay alguna forma de comparar un área dibujada (tengo un arco dibujado con drawArc() especificamente) con la posicion en la que el usuario acaba de hacer click. Es decir, cómo puedo saber si el usuario hizo click dentro del area de un semicirculo que ya está dibujado.
Si fuera un rectangulo simplemente restaria las x e y del mismo, pero al ser una figura ovalada no le encuentro solucion. Si alguien sabe cómo se hace..desde ya mil gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Comparar area dibujada con posicion del click

Publicado por Tom (1831 intervenciones) el 21/02/2007 18:24:26
Bueno, si es un semicírculo, la cosa se complica un poco (y más aún si no es circular, sino ovalado).

Básicamente, primero deberías calcular la distancia de tu punto de click (x1, y1) al centro de la circunferencia (x0, y0) :

distancia = Math.hypot(y1 - y0, x1 - x0);

Si esa distancia es mayor que el radio de la circunferencia, estás fuera.
Si estás dentro, y seguimos hablando de semicírculo, deberás, además ver el ángulo en que estás respecto a cualquier eje, para compararlo con el arco cubierto por tu semicírculo ...

el ángulo (en radianes) podrías calcularlo con:

Math.atan2(y1 - y0, x1 - x0);

Pero todo esto podrías evitarlo, usando Java2D y shapes (o areas).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar