Составить описание класса прямоугольников со сторонами, параллельными осям координат - 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(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д