Вот сегмент кода, с которым у меня возникают проблемы. Независимо от того, пересекаются ли круги, программа возвращается, что они не пересекаются. Что мне здесь не хватает?Почему это уравнение не дает правильного возврата?
if(intersectCir(xBlue, yBlue, radBlue, xRed, yRed, radRed) == true) {
System.out.println("The blue circle intersects the red circle.");
} else if(intersectCir(xBlue, yBlue, radBlue, xRed, yRed, radRed) != true){
System.out.println("The blue circle does not intersect the red circle.");
}
if(intersectCir(xBlue, yBlue, radBlue, xGreen, yGreen, radGreen) == true) {
System.out.println("The blue circle intersects the green circle.");
} else if(intersectCir(xBlue, yBlue, radBlue, xGreen, yGreen, radGreen) != true){
System.out.println("The blue circle does not intersect the green circle.");
}
if(intersectCir(xGreen, yGreen, radGreen, xRed, yRed, radRed) == true) {
System.out.println("The green circle intersects the red circle.");
} else if(intersectCir(xBlue, yBlue, radBlue, xRed, yRed, radRed) != true){
System.out.println("The green circle does not intersect the red circle.");
}
}
public static boolean intersectCir(int x1, int y1, int rad1, int x2, int y2, int rad2) {
if(Math.sqrt(Math.pow(x1 - x2, 2)) + (Math.sqrt(Math.pow(y1 - y2, 2))) <= (rad1 + rad2));
return true;
}
}
почти весь этот код бессмыслен. все, что вам нужно было показать, это метод 'intersectCir()' и объяснять, какие параметры ... нам все равно, откуда поступают данные, если проблема связана с ИСПОЛЬЗОВАНИЕМ данных. –
Вы пытались добавить «else return false»; к функции «if» внутри «intersectCir»? – Wazaaaap
После слова 'if' имеется точка с запятой, поэтому следующая строка всегда выполняется. – Michelle