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

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

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

Помогите с заданием, пожалуйста. Вот само задание: Составить описание класса прямоугольников со сторонами, параллельными осям координат. Предусмотреть возможность перемещения прямоугольников на плоскости, изменение размеров, построение наименьшего прямоугольника, содержащего два заданных прямоугольника, и прямоугольника, являющегося общей частью ( пересечением ) двух прямоугольников. Написать программу, демонстрирующую все разработанные элементы класса. Заранее спасибо.

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

textual
Листинг программы
  1. using System;
  2.  
  3. namespace ConsoleApplication1
  4. {
  5.  
  6.     class Rectangle
  7.     {
  8.         public Rectangle(int x, int y, int width, int height)
  9.         {
  10.             X = x;
  11.             Y = y;
  12.             Width = width;
  13.             Height = height;
  14.         }
  15.  
  16.         public int X
  17.         {
  18.             get;
  19.             set;
  20.         }
  21.  
  22.         public int Y
  23.         {
  24.             get;
  25.             set;
  26.         }
  27.  
  28.         public int Width
  29.         {
  30.             get;
  31.             set;
  32.         }
  33.  
  34.         public int Height
  35.         {
  36.             get;
  37.             set;
  38.         }
  39.  
  40.         public void Offset(int x, int y)
  41.         {
  42.             X += x;
  43.             Y += y;
  44.         }
  45.  
  46.         public static Rectangle Intersect(Rectangle a, Rectangle b)
  47.         {
  48.             int maxStartX = Math.Max(a.X, b.X);
  49.             int minEndX = Math.Min(a.X + a.Width, b.X + b.Width);
  50.             int MaxStartY = Math.Max(a.Y, b.Y);
  51.             int minEndY = Math.Min(a.Y + a.Height, b.Y + b.Height);
  52.             if (minEndX >= maxStartX && minEndY >= MaxStartY)
  53.             {
  54.                 return new Rectangle(maxStartX, MaxStartY, minEndX - maxStartX, minEndY - MaxStartY);
  55.             }
  56.             return null;
  57.         }
  58.  
  59.         public static Rectangle Union(Rectangle a, Rectangle b)
  60.         {
  61.             int minStartX = Math.Min(a.X, b.X);
  62.             int maxEndX = Math.Max(a.X + a.Width, b.X + b.Width);
  63.             int minStartY = Math.Min(a.Y, b.Y);
  64.             int MaxEndY = Math.Max(a.Y + a.Height, b.Y + b.Height);
  65.             return new Rectangle(minStartX, minStartY, maxEndX - minStartX, MaxEndY - minStartY);
  66.         }
  67.  
  68.         public override string ToString()
  69.         {
  70.             return String.Format("X:{0} Y:{1} W:{2} H:{3}", X, Y, Width, Height);
  71.         }
  72.     }
  73.  
  74.  
  75.     class Program
  76.     {
  77.         static void Main(string[] args)
  78.         {
  79.             Rectangle r1 = new Rectangle(0, 0, 10, 10);
  80.             Console.Write("Исходный прямоугольник: " + r1);
  81.  
  82.             Console.Write("Смещённый прямоугольник: ");
  83.             r1.Offset(5, 0);
  84.             Console.WriteLine(r1);
  85.  
  86.             Rectangle r2 = new Rectangle(2, 2, 20, 20);
  87.             Console.WriteLine("Пересечение прямоугольников: " + Rectangle.Intersect(r1, r2));
  88.             Console.WriteLine("Объединение прямоугольников: " + Rectangle.Union(r1, r2));
  89.             Console.ReadKey();
  90.         }
  91.     }
  92. }

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


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

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

11   голосов , оценка 3.727 из 5

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

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

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