Загрузка данных


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);
        }
    }
}