OK, so I've written most of a program that will allow me to determine if two circles overlap.
I have no problems whatsoever with my program aside from one issue: the program won't accept the code I've written for the distance between the two center points. I can figure out the if/else logic to tell the user what happens depending on the value of distance later, but I want to know what's wrong now. Eclipse, the program I'm coding on, is telling me that distance should be resolved to an array, but I've already told you that it's an int.
Here is my code:
package circles; import java.util.Scanner; public class MathCircles { // variable for the distance between the circles' centers public static int distance; // variable for the lengths of the radii combined public static int radii; public static void main(String[] args) { // Get the x-value of the center of circle one System.out.println("What is the x-coordinate for the center of circle one?"); Scanner keyboard = new Scanner(System.in); int x1 = keyboard.nextInt(); //Get the y-value of the center of circle one System.out.println("What is the y-coordinate for the center of circle one?"); Scanner keyboard1 = new Scanner(System.in); int y1 = keyboard1.nextInt(); //Get the radius length of circle one. System.out.println("How long is circle one's radius?"); Scanner keyboard2 = new Scanner(System.in); int r1 = keyboard2.nextInt(); // Get the x-value of the center of circle two. System.out.println("What is the x-coordinate for the center of circle two?"); Scanner keyboard3 = new Scanner(System.in); int x2 = keyboard3.nextInt(); //Get the y-value of the center of circle two. System.out.println("What is the y-coordinate for the center of circle two?"); Scanner keyboard4 = new Scanner(System.in); int y2 = keyboard4.nextInt(); //Get the radius length of circle two. System.out.println("How long is circle two's radius?"); Scanner keyboard5 = new Scanner(System.in); int r2 = keyboard5.nextInt(); /* * OK, so now I have the location of the two circles' centers, * as well as the lengths of their radii. * The circles are intersecting IF THE DISTANCE BETWEEN THE TWO CENTERS * IS EQUAL TO OR LESS THAN THE COMBINED LENGTHS OF THE RADII. * Now I need to get some math done. */ //calculate the combined lengths of the radii radii = r1 + r2; //calculate the distance distance = Math.sqrt((x1-x2)(x1-x2) + (y1-y2)(y1-y2)); } }
The Euclidean distance between (x1, y1, z1) and (x2, y2, z2) is defined as sqrt( (x1-x2)^2 + (y1-y2)^2) + (z1-z2)^2). String toString() – it returns the string representation of the point. An example would be (2.3,4.5,3.0).
Based on the @trashgod's comment, this is the simpliest way to calculate distance:
double distance = Math.hypot(x1-x2, y1-y2);
From documentation of Math.hypot
:
Returns:
sqrt(x²+ y²)
without intermediate overflow or underflow.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With