Advertisement
Guest User

Untitled

a guest
Sep 17th, 2019
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.46 KB | None | 0 0
  1. package ru.arti;
  2.  
  3.  
  4. import java.util.Scanner;
  5.  
  6. import static java.lang.System.out;
  7.  
  8.  
  9. //нас интересуют только координаты угловых точек
  10. //их достаточно, чтобы задать два прямоугольника
  11.  
  12. class A {
  13.     static int x;
  14.     static int y;
  15. }
  16.  
  17. class D {
  18.     static int x;
  19.     static int y;
  20. }
  21.  
  22. class E {
  23.     static int x;
  24.     static int y;
  25. }
  26.  
  27. class H {
  28.     static int x;
  29.     static int y;
  30. }
  31.  
  32. //а это координаты углов прямоугольника
  33. //который получился пересечением
  34.  
  35. class Rect1 {
  36.     static int x;
  37.     static int y;
  38. }
  39.  
  40. class Rect2 {
  41.     static int x;
  42.     static int y;
  43.  
  44. }
  45.  
  46. public class Main {
  47.  
  48.     public static void main(String[] args) {
  49.         Scanner keyboard = new Scanner(System.in);
  50.         out.println("Введите координаты точек первого прямоугольника: ");
  51.         out.print("A: ");
  52.         A.x = keyboard.nextInt();
  53.         A.y = keyboard.nextInt();
  54.         out.print("D: ");
  55.         D.x = keyboard.nextInt();
  56.         D.y = keyboard.nextInt();
  57.         out.println("Второго: ");
  58.         out.print("E: ");
  59.         E.x = keyboard.nextInt();
  60.         E.y = keyboard.nextInt();
  61.         out.print("H: ");
  62.         H.x = keyboard.nextInt();
  63.         H.y = keyboard.nextInt();
  64.  
  65.         //замутим проверку на вложенность
  66.         //корявую, но тем не менее
  67.         if((E.x > A.x && E.y > A.y && D.x > H.x && D.y > H.y) || (E.x < A.x && E.y < A.y && D.x < H.x && D.y < H.y)) {
  68.             out.println("Прямоугольники вложены");
  69.             System.exit(0); //я пока что не очень в ОПП, поэтому это костыль
  70.         }
  71.  
  72.         //теперь надо замутить координаты прямоугольника в пересечении
  73.         Rect1.x = Math.min(D.x, E.x);
  74.         Rect1.y = Math.min(D.y, E.y);
  75.         Rect2.x = Math.min(H.x, D.x);
  76.         Rect2.y = Math.min(H.y, D.y);
  77.        
  78.         //получить длины его сторон
  79.         int a = Rect1.x - Rect2.x;
  80.         int b = Rect1.y - Rect2.y;
  81.         //посчитать площадь
  82.         int S = Math.abs(a*b);
  83.         if (S == 0) {
  84.             out.print("Прямоугольники не пересекаются");
  85.         } else out.print("S = " +  S);
  86.     }
  87. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement