Составить описание класса прямоугольников со сторонами, параллельными осям координат - C# (186036)
Формулировка задачи:
Помогите с заданием, пожалуйста.
Вот само задание:
Составить описание класса прямоугольников со сторонами, параллельными осям координат. Предусмотреть возможность перемещения прямоугольников на плоскости, изменение размеров, построение наименьшего прямоугольника, содержащего два заданных прямоугольника, и прямоугольника, являющегося общей частью ( пересечением ) двух прямоугольников.
Написать программу, демонстрирующую все разработанные элементы класса.
Заранее спасибо.
Решение задачи: «Составить описание класса прямоугольников со сторонами, параллельными осям координат»
textual
Листинг программы
- using System;
- namespace ConsoleApplication1
- {
- class Rectangle
- {
- public Rectangle(int x, int y, int width, int height)
- {
- X = x;
- Y = y;
- Width = width;
- Height = height;
- }
- public int X
- {
- get;
- set;
- }
- public int Y
- {
- get;
- set;
- }
- public int Width
- {
- get;
- set;
- }
- public int Height
- {
- get;
- set;
- }
- public void Offset(int x, int y)
- {
- X += x;
- Y += y;
- }
- public static Rectangle Intersect(Rectangle a, Rectangle b)
- {
- int maxStartX = Math.Max(a.X, b.X);
- int minEndX = Math.Min(a.X + a.Width, b.X + b.Width);
- int MaxStartY = Math.Max(a.Y, b.Y);
- int minEndY = Math.Min(a.Y + a.Height, b.Y + b.Height);
- if (minEndX >= maxStartX && minEndY >= MaxStartY)
- {
- return new Rectangle(maxStartX, MaxStartY, minEndX - maxStartX, minEndY - MaxStartY);
- }
- return null;
- }
- public static Rectangle Union(Rectangle a, Rectangle b)
- {
- int minStartX = Math.Min(a.X, b.X);
- int maxEndX = Math.Max(a.X + a.Width, b.X + b.Width);
- int minStartY = Math.Min(a.Y, b.Y);
- int MaxEndY = Math.Max(a.Y + a.Height, b.Y + b.Height);
- return new Rectangle(minStartX, minStartY, maxEndX - minStartX, MaxEndY - minStartY);
- }
- public override string ToString()
- {
- return String.Format("X:{0} Y:{1} W:{2} H:{3}", X, Y, Width, Height);
- }
- }
- class Program
- {
- static void Main(string[] args)
- {
- Rectangle r1 = new Rectangle(0, 0, 10, 10);
- Console.Write("Исходный прямоугольник: " + r1);
- Console.Write("Смещённый прямоугольник: ");
- r1.Offset(5, 0);
- Console.WriteLine(r1);
- Rectangle r2 = new Rectangle(2, 2, 20, 20);
- Console.WriteLine("Пересечение прямоугольников: " + Rectangle.Intersect(r1, r2));
- Console.WriteLine("Объединение прямоугольников: " + Rectangle.Union(r1, r2));
- Console.ReadKey();
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д