using System;
using System.Drawing;
using System.Windows.Forms;
namespace NestedSquaresApp
{
// Основной класс формы
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
// Устанавливаем начальный размер формы, чтобы квадраты были видны
this.Size = new Size(300, 300);
this.Text = "Задание 1: Вложенные квадраты";
// Включаем двойную буферизацию для плавного рисования при изменении размера окна
this.DoubleBuffered = true;
}
// Этот метод вызывается каждый раз, когда форме нужно перерисоваться
protected override void OnPaint(PaintEventArgs e)
{
// Получаем объект Graphics для рисования
Graphics g = e.Graphics;
// Включаем сглаживание для более красивых краев
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
// Размеры сторон квадратов по заданию
int outerSide = 60; // Внешний
int middleSide = 40; // Средний
int innerSide = 20; // Внутренний
// Находим центр формы
int centerX = this.ClientSize.Width / 2;
int centerY = this.ClientSize.Height / 2;
// Рисуем квадраты от большего к меньшему, чтобы они перекрывались
// 1. Внешний квадрат (Синий, 60px)
// Расчет координат верхнего левого угла для центрирования: Центр - (Сторона / 2)
int xOuter = centerX - (outerSide / 2);
int yOuter = centerY - (outerSide / 2);
// Заливаем прямоугольник синим цветом
g.FillRectangle(Brushes.Blue, xOuter, yOuter, outerSide, outerSide);
// 2. Средний квадрат (Красный, 40px)
int xMiddle = centerX - (middleSide / 2);
int yMiddle = centerY - (middleSide / 2);
// Заливаем прямоугольник красным цветом поверх синего
g.FillRectangle(Brushes.Red, xMiddle, yMiddle, middleSide, middleSide);
// 3. Внутренний квадрат (Зелёный, 20px)
int xInner = centerX - (innerSide / 2);
int yInner = centerY - (innerSide / 2);
// Заливаем прямоугольник зелёным цветом поверх красного
g.FillRectangle(Brushes.Green, xInner, yInner, innerSide, innerSide);
// Вызываем базовый метод (необязательно, но хорошая практика)
base.OnPaint(e);
}
// Если файл Form1.Designer.cs не создался автоматически,
// этот метод нужен здесь. Обычно он создается Visual Studio.
private void InitializeComponent()
{
this.SuspendLayout();
//
// Form1
//
this.ClientSize = new System.Drawing.Size(284, 261);
this.Name = "Form1";
this.ResumeLayout(false);
}
}
}