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


using System;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Windows.Forms;

namespace GraphicsTask
{
    public partial class Form1 : Form
    {
        // Переменные для хранения выбранной фигуры и цветов
        private string currentShape = "";
        private Color triangleColor = Color.Green;
        private Color squareColor = Color.Orange;
        private Color circleColor = Color.Purple;

        public Form1()
        {
            InitializeComponent();
        }

        // Рисование в PictureBox
        private void pictureBox1_Paint(object sender, PaintEventArgs e)
        {
            Graphics g = e.Graphics;

            // ---------- ОСНОВНАЯ КОМПОЗИЦИЯ ----------

            // Контурный прямоугольник
            Pen bluePen = new Pen(Color.Blue, 3);
            g.DrawRectangle(bluePen, 20, 20, 120, 80);

            // Закрашенный прямоугольник
            SolidBrush yellowBrush = new SolidBrush(Color.Yellow);
            g.FillRectangle(yellowBrush, 180, 20, 120, 80);

            // Линия
            Pen redPen = new Pen(Color.Red, 2);
            g.DrawLine(redPen, 50, 150, 300, 150);

            // Эллипс со штриховкой
            HatchBrush hatchBrush = new HatchBrush(
                HatchStyle.Cross,
                Color.Green,
                Color.White);

            g.FillEllipse(hatchBrush, 350, 20, 150, 100);

            // Текст
            Font myFont = new Font("Arial", 16, FontStyle.Bold);
            SolidBrush textBrush = new SolidBrush(Color.Black);

            g.DrawString("Windows Forms Graphics",
                myFont,
                textBrush,
                new Point(120, 220));

            // ---------- ДОПОЛНИТЕЛЬНЫЕ ФИГУРЫ ----------

            if (currentShape == "triangle")
            {
                Point[] points =
                {
                    new Point(100, 300),
                    new Point(50, 370),
                    new Point(150, 370)
                };

                SolidBrush brush = new SolidBrush(triangleColor);
                g.FillPolygon(brush, points);
            }

            else if (currentShape == "square")
            {
                SolidBrush brush = new SolidBrush(squareColor);
                g.FillRectangle(brush, 250, 300, 100, 100);
            }

            else if (currentShape == "circle")
            {
                SolidBrush brush = new SolidBrush(circleColor);
                g.FillEllipse(brush, 420, 300, 100, 100);
            }
        }

        // Кнопка "Треугольник"
        private void btnTriangle_Click(object sender, EventArgs e)
        {
            currentShape = "triangle";
            pictureBox1.Invalidate();
        }

        // Кнопка "Квадрат"
        private void btnSquare_Click(object sender, EventArgs e)
        {
            currentShape = "square";
            pictureBox1.Invalidate();
        }

        // Кнопка "Круг"
        private void btnCircle_Click(object sender, EventArgs e)
        {
            currentShape = "circle";
            pictureBox1.Invalidate();
        }

        // Кнопка "Очистить"
        private void btnClear_Click(object sender, EventArgs e)
        {
            currentShape = "";
            pictureBox1.Invalidate();
        }

        // Цвет треугольника
        private void btnTriangleColor_Click(object sender, EventArgs e)
        {
            ColorDialog cd = new ColorDialog();

            if (cd.ShowDialog() == DialogResult.OK)
            {
                triangleColor = cd.Color;
                pictureBox1.Invalidate();
            }
        }

        // Цвет квадрата
        private void btnSquareColor_Click(object sender, EventArgs e)
        {
            ColorDialog cd = new ColorDialog();

            if (cd.ShowDialog() == DialogResult.OK)
            {
                squareColor = cd.Color;
                pictureBox1.Invalidate();
            }
        }

        // Цвет круга
        private void btnCircleColor_Click(object sender, EventArgs e)
        {
            ColorDialog cd = new ColorDialog();

            if (cd.ShowDialog() == DialogResult.OK)
            {
                circleColor = cd.Color;
                pictureBox1.Invalidate();
            }
        }
    }
}