Detección de colisión: objeto redondeado

Estoy desarrollando un juego Java (pero el lenguaje de desarrollo no importa) incluyendo objetos redondeados como bolas o discos, y ahora estoy trabajando en colisiones. Utilizo un temporizador, por lo que en cada cuadro compruebo si ocurre una colisión.

Aquí hay un gráfico que representa la pieza superior derecha de un objeto.

El centro del objeto está representado por el punto [0,0], su radio es de 10 px y las unidades son píxeles.

Ahora si mi objeto (por ejemplo,obj_1) es cuadrado / en forma de diamante (línea azul), para encontrar si otro (obj_2) lo colisiona, solo tengo que obtener sus coordenadas y comprobandoMath.abs(obj_1.x - obj_2.x) + Math.abs(obj_1.y - obj_2.y) <= radius Yo sabré si hay una colisión.

Pero el problema es más complicado con una forma de círculo (línea roja), ya que ocupa más espacio y este espacio ocupado no está delimitado por una línea recta. Por supuesto, tendré que redondear algunos valores (por ejemplo, en el gráfico anterior, si quiero verificar una colisión enx = 2 Tendré que redondear el valor de y que se ve como 9.5 a 10). Pero simplemente no tengo idea de cómo obtener esta fórmula. Cualquier ayuda será muy apreciada.

Respuestas a la pregunta(4)

Su respuesta a la pregunta