Я пытаюсь написать программу, которая решает, находится ли круг внутри/касаясь прямоугольника. Пользователь ставит в центр точки для круга и радиуса и две диагональные точки для прямоугольника.Если утверждение, похоже, пропущено в другое
Я не уверен, как включить все точки окружности круга, чтобы сказать, что есть хотя бы одна точка в/касание прямоугольника. Кто-нибудь уверен, как это сделать?
Когда я запускаю свою текущую программу, я намеренно вводим точки круга внутри прямоугольника и должен работать с операторами if, которые я положил, но он печатает неправильный ответ.
import java.util.Scanner;
public class lab4 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
double cx, cy, x, y, r, p1x, p1y, p2x, p2y, max;//input
String a;
System.out.print("Enter cx: ");
cx = in.nextDouble();
System.out.print("Enter cy: ");
cy = in.nextDouble();
System.out.print("Enter r: ");
r = in.nextDouble();
System.out.println("Enter x value of point 1:");
p1x = in.nextDouble();
System.out.println("Enter y value of point 1:");
p1y = in.nextDouble();
System.out.println("Enter x value of point 2:");
p2x = in.nextDouble();
System.out.println("Enter y value of point 2:");
p2y = in.nextDouble();
max = p2x;
if (p1x > max)
max = p1x;
max = p2y;
if (p1y > max)
max = p1y;
if (cx >= p1x && cx <= p2x)
a = "Circle is inside of Rectangle";
if (cx >= p1x && cx <= p2x)
a = "Circle is inside of Rectangle";
if (cx+r >= p1x && cx+r <= p2x)
a = "Circle is inside of Rectangle";
if (cx-r >= p1x && cx-r <= p2x)
a = "Circle is inside of Rectangle";
if (cy >= p1y && cy <= p2y)
a = "Circle is inside of Rectangle";
if (cy >= p1y && cy <= p2y)
a = "Circle is inside of Rectangle";
if (cy+r >= p1y && cy+r <= p2y)
a = "Circle is inside of Rectangle";
if (cy-r >= p1y && cy-r <= p2y)
a = "Circle is inside of Rectangle";
else
a = "Circle is outside of Rectangle";
System.out.println(a);
ваш else только для последнего, если не для всех, возможно, вы переопределяете значение, вместо этого я предлагаю ** объединить каждый результат в переменную a ** и увидеть их все –