private void button1_Click(object sender, EventArgs e)
{
Graphics g;
g = this.CreateGraphics();
// Очищаем холст белым цветом
g.Clear(Color.White);
// Настраиваем сглаживание, чтобы линии домика были ровными и красивыми
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
// Создаем инструменты для рисования (карандаши и кисти)
Pen wallPen = new Pen(Color.Brown, 4); // Коробка дома
Pen roofPen = new Pen(Color.Red, 4); // Крыша
Pen windowPen = new Pen(Color.Blue, 3); // Окно
Pen doorPen = new Pen(Color.DarkRed, 3); // Дверь
SolidBrush groundBrush = new SolidBrush(Color.Green); // Зеленая земля
// 1. Зеленый овал (земля) в самом низу области 400x400
// Рисуем широкий закрашенный овал, на котором будет стоять дом
g.FillEllipse(groundBrush, 20, 300, 360, 80);
// 2. Прямоугольник-коробка (стены)
// Размеры: ширина 200, высота 150. Центрирован на холсте.
int houseX = 100;
int houseY = 170;
int houseWidth = 200;
int houseHeight = 150;
g.DrawRectangle(wallPen, houseX, houseY, houseWidth, houseHeight);
// 3. Треугольник (крыша)
// Соединяем левый угол стены, правый угол и конёк крыши по центру (X=200, Y=80)
System.Drawing.Point[] roofPoints = new System.Drawing.Point[]
{
new System.Drawing.Point(houseX, houseY), // Левый угол стены
new System.Drawing.Point(houseX + houseWidth, houseY), // Правый угол стены
new System.Drawing.Point(houseX + (houseWidth / 2), houseY - 90) // Конёк крыши
};
g.DrawPolygon(roofPen, roofPoints);
// 4. Прямоугольник-окошко (левая часть дома)
int winX = 130;
int winY = 210;
int winWidth = 50;
int winHeight = 50;
g.DrawRectangle(windowPen, winX, winY, winWidth, winHeight);
// Крестовина для окошка
g.DrawLine(windowPen, winX + (winWidth / 2), winY, winX + (winWidth / 2), winY + winHeight);
g.DrawLine(windowPen, winX, winY + (winHeight / 2), winX + winWidth, winY + (winHeight / 2));
// 5. Прямоугольник-дверь (правая часть дома)
// Дверь начинается на линии пола (houseY + houseHeight)
int doorWidth = 45;
int doorHeight = 90;
int doorX = 225;
int doorY = (houseY + houseHeight) - doorHeight;
g.DrawRectangle(doorPen, doorX, doorY, doorWidth, doorHeight);
// Маленькая дверная ручка (точка)
g.DrawEllipse(doorPen, doorX + doorWidth - 10, doorY + (doorHeight / 2), 2, 2);
}