Encontrar si un círculo está dentro de otro círculo

Estoy teniendo algunos problemas. Tengo una tarea que requiere que encuentre si un segundo círculo se superpone, dentro o si no hay un segundo círculo. Sin embargo, tengo problemas para verificar la superposición y si el segundo círculo está dentro del primero.

(las variables utilizadas son x1, x2, y1, y2, r1, r2, distancia)

Esto es lo que tengo:

if (distance > (r1 + r2)) {
        // No overlap
        System.out.println("Circle2 does not overlap Circle1");
    } else if (distance <= Math.abs(r1 + r2)) {
        // Overlap
        System.out.println("Circle2 overlaps Circle1");
    } else if ((distance <= Math.abs(r1 - r2)) {
        // Inside
        System.out.println("Circle2 is inside Circle1");
}

Me temo que el problema está en las comprobaciones internas y superpuestas, pero no puedo encontrar la manera de configurarlo correctamente para poder verificar de manera confiable si el segundo círculo está dentro del primero.

ualquier ayuda o consejo sería muy apreciada ya que he intentado varios enfoques, pero la solución simplemente se me escapa cada ve

Respuestas a la pregunta(14)

Su respuesta a la pregunta