Составить описание класса прямоугольника со сторонами, параллельными осям координат - C# (206269)

Узнай цену своей работы

Формулировка задачи:

Задание:Составить описание класса прямоугольника со сторонами, параллельными осям координат. Предусмотреть возможность перемещения прямоугольника на плоскости, изменение размеров, построение наименьшего прямоугольника, содержащего 2 заданных прямоугольника и прямоугольник, являющегося общей частью(пересечением) 2-х прямоугольников. Я вот нашел тут на форуме
Листинг программы
  1. public class rectangle
  2. {
  3. public static bool brake = false;
  4. int x, y, shirina, visota;
  5. public rectangle(int x, int y, int shirina, int visota)
  6. {
  7. this.x = x;
  8. this.y = y;
  9. this.shirina = shirina;
  10. this.visota = visota;
  11. }
  12. public void perem(int l, int h, ref int x, ref int y)
  13. {
  14. x -= l;
  15. y -= h;
  16. }
  17. public void sovm(int x1, int x2, int y1, int y2, int shirina1, int shirina2, int visota1, int visota2)
  18. {
  19. if (x1 > x2)
  20. {
  21. int buf = x1;
  22. x1 = x2;
  23. x2 = buf;
  24. }
  25. if (x1 + shirina1 < x2 + shirina2)
  26. {
  27. x = x1;
  28. shirina = x2 - x1 + shirina2;
  29. }
  30. else
  31. {
  32. x = x1;
  33. shirina = shirina2;
  34. }
  35. ////////////////////////
  36. if (y1 > y2)
  37. {
  38. int buf = y1;
  39. y1 = y2;
  40. y2 = buf;
  41. }
  42. if (y1 + visota1 < y2 + visota2)
  43. {
  44. y = y1;
  45. visota = y2 - y1 + visota2;
  46. }
  47. else
  48. {
  49. y = y1;
  50. visota = visota2;
  51. }
  52. Console.WriteLine("x={0},y={1},shirina={2},visota={3}", x, y, shirina, visota);
  53. }
  54.  
  55. public void izm(int x, int y, ref int shirina, ref int visota)
  56. {
  57. shirina -= x;
  58. visota -= y;
  59. }
  60. public void show(int x, int y, int shirina, int visota)
  61. {
  62. Console.WriteLine("{0} {1} {2} {3}", x, y, shirina, visota);
  63. }
  64. }
  65. //-----------------------------------------------------------------------------------------------------------------------
  66. class Go
  67. {
  68. static void Main(string[] args)
  69. {
  70. Console.WriteLine("Строим по левой нижней точке, высоте и длине");
  71. Console.WriteLine("Варианты команд:\n Perem Izm Show Sovm Exit");
  72. Console.WriteLine("Введите x");
  73. int x = Convert.ToInt32(Console.ReadLine());
  74. Console.WriteLine("Введите y");
  75. int y = Convert.ToInt32(Console.ReadLine());
  76. Console.WriteLine("Введите ширину");
  77. int shirina = Convert.ToInt32(Console.ReadLine());
  78. Console.WriteLine("Введите высоту");
  79. int visota = Convert.ToInt32(Console.ReadLine());
  80. int x2 = 3, y2 = 2, shirina2 = 3, visota2 = 2;
  81. rectangle rect1 = new rectangle(x, y, shirina, visota);
  82. // Здесь менять на сколько перемещать и изменять.
  83. int izmx = 1, izmy = 1;
  84. int perx = 1, pery = 1;
  85. //
  86. Console.WriteLine("Введите комманду");
  87. do
  88. {
  89. switch (Console.ReadLine())
  90. {
  91. case "Perem": rect1.perem(perx, pery, ref x, ref y); break;
  92. case "Izm": rect1.izm(izmx, izmy, ref shirina, ref visota); break;
  93. case "Show": rect1.show(x, y, shirina, visota); break;
  94. case "Sovm": rect1.sovm(x, x2, y, y2, shirina, shirina2, visota, visota2); break;
  95. case "Exit": rectangle.brake = true; break;
  96. default: Console.WriteLine("Не, ну это не серьёзно, вводи!"); break;
  97. }
  98. } while (!rectangle.brake);
  99. }
  100. }
тут есть перемещение, изменение размера, но я не могу понять, что с построением прямоугольника, являющегося общей частью(пересечением) 2-х прямоугольников! тут есть функция sovm, которая строит наименьший прямоугольник, содержащий 2 заданных прямоугольника. помогите добавить построение прямоугольника, являющегося общей частью(пересечением) 2-х прямоугольников.

Решение задачи: «Составить описание класса прямоугольника со сторонами, параллельными осям координат»

textual
Листинг программы
  1. public class Rectangle
  2. {
  3.    public readonly int X,Y,Width,Height;
  4.    public Point A { get { return new Point(X,Y);}
  5.    public Point B { get { return new Point(X + Height,Y);}
  6.    public Point C { get { return new Point(X,Y + Width);}
  7.    public Point D { get { return new Point(X + Height,Y + Width);}
  8.    
  9.    public Rectangle(int x, int y, int width, int height)
  10.    {
  11.       X = x;
  12.       Y = y;
  13.       Width = width;
  14.       Height = height;
  15.    }
  16.  
  17.    public void Move(int dx, int dy)
  18.    {
  19.       X += dx;
  20.       Y += dy;
  21.    }
  22.    ...
  23. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.444 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы