import java.lang.Math;
public class Main {
public static void main
(String[] args
) { //r^2 = (x - h)^2 + (y - k)^2
//in order of r, h, k
double[] equation = {5.0D, 4.0D, 2.0D};
double epsilon = 0.0001; //acceptable error
int[][] pointsToTest = {{-3, 4}, {0, 2}, {1, 9}, {0, 5}};
for (int ai = 0; ai < pointsToTest.length; ai++) {
System.
out.
println("Point (" + pointsToTest
[ai
][0] + ", " + pointsToTest
[ai
][1] + ") is " + relationshipToCircle
(epsilon, equation, pointsToTest
[ai
][0], pointsToTest
[ai
][1]) + "."); }
}
public static String relationshipToCircle
(double error,
double[] eq,
int x,
int y
) { double rsq = eq[0] * eq[0];
double h = eq[1];
double k = eq[2];
double eval
= Math.
pow((x
- h
),
2) + Math.
pow((y
- k
),
2);
if (Math.
abs(eval
- rsq
) < error
) { //difference in values negligible return "on the circle";
} else if (eval > rsq) { //bigger than circle's radius so it's ouside
return "outside of the circle";
} else { //not outside, not on, so inside
return "inside the circle";
}
}
}
aW1wb3J0IGphdmEubGFuZy5NYXRoOwoKcHVibGljIGNsYXNzIE1haW4gewoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4gKFN0cmluZ1tdIGFyZ3MpIHsKCQkvL3JeMiA9ICh4IC0gaCleMiArICh5IC0gayleMgoJCS8vaW4gb3JkZXIgb2YgciwgaCwgawoJCWRvdWJsZVtdIGVxdWF0aW9uID0gezUuMEQsIDQuMEQsIDIuMER9OwoJCWRvdWJsZSBlcHNpbG9uID0gMC4wMDAxOyAvL2FjY2VwdGFibGUgZXJyb3IKCgkJaW50W11bXSBwb2ludHNUb1Rlc3QgPSB7ey0zLCA0fSwgezAsIDJ9LCB7MSwgOX0sIHswLCA1fX07CgkJZm9yIChpbnQgYWkgPSAwOyBhaSA8IHBvaW50c1RvVGVzdC5sZW5ndGg7IGFpKyspIHsKCQkJU3lzdGVtLm91dC5wcmludGxuKCJQb2ludCAoIiArIHBvaW50c1RvVGVzdFthaV1bMF0gKyAiLCAiICsgcG9pbnRzVG9UZXN0W2FpXVsxXSArICIpIGlzICIgKyByZWxhdGlvbnNoaXBUb0NpcmNsZShlcHNpbG9uLCBlcXVhdGlvbiwgcG9pbnRzVG9UZXN0W2FpXVswXSwgcG9pbnRzVG9UZXN0W2FpXVsxXSkgKyAiLiIpOwoJCX0KCX0KCglwdWJsaWMgc3RhdGljIFN0cmluZyByZWxhdGlvbnNoaXBUb0NpcmNsZShkb3VibGUgZXJyb3IsIGRvdWJsZVtdIGVxLCBpbnQgeCwgaW50IHkpIHsKCQlkb3VibGUgcnNxID0gZXFbMF0gKiBlcVswXTsKCQlkb3VibGUgaCA9IGVxWzFdOwoJCWRvdWJsZSBrID0gZXFbMl07CgkJZG91YmxlIGV2YWwgPSBNYXRoLnBvdygoeCAtIGgpLCAyKSArIE1hdGgucG93KCh5IC0gayksIDIpOwoKCQlpZiAoTWF0aC5hYnMoZXZhbCAtIHJzcSkgPCBlcnJvcikgeyAvL2RpZmZlcmVuY2UgaW4gdmFsdWVzIG5lZ2xpZ2libGUKCQkJcmV0dXJuICJvbiB0aGUgY2lyY2xlIjsKCQl9IGVsc2UgaWYgKGV2YWwgPiByc3EpIHsgLy9iaWdnZXIgdGhhbiBjaXJjbGUncyByYWRpdXMgc28gaXQncyBvdXNpZGUKCQkJcmV0dXJuICJvdXRzaWRlIG9mIHRoZSBjaXJjbGUiOwoJCX0gZWxzZSB7IC8vbm90IG91dHNpZGUsIG5vdCBvbiwgc28gaW5zaWRlCgkJCXJldHVybiAiaW5zaWRlIHRoZSBjaXJjbGUiOwoJCX0KCX0KfQ==