Загрузка данных
using System;
using System.Drawing;
using System.Windows.Forms;
class HouseForm : Form
{
public HouseForm()
{
this.Text = "Домик по клеткам";
this.Size = new Size(600, 600);
this.Paint += new PaintEventHandler(DrawHouse);
}
private void DrawHouse(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
int cellSize = 5; // одна клетка = 5 пикселей
// Рисуем сетку (20x20 клеток, смещение 50 пикселей от края)
int startX = 50;
int startY = 50;
int gridSize = 20; // 20x20 клеток
Pen gridPen = new Pen(Color.LightGray, 1);
for (int i = 0; i <= gridSize; i++)
{
// Вертикальные линии
g.DrawLine(gridPen, startX + i * cellSize, startY, startX + i * cellSize, startY + gridSize * cellSize);
// Горизонтальные линии
g.DrawLine(gridPen, startX, startY + i * cellSize, startX + gridSize * cellSize, startY + i * cellSize);
}
// Рисуем домик чёрными линиями (координаты в клетках)
Pen housePen = new Pen(Color.Black, 2);
// Стена (квадрат с клетки 4 по 15)
// От (4,10) до (15,19) в клетках -> переводим в пиксели
int wallLeft = startX + 4 * cellSize;
int wallTop = startY + 10 * cellSize;
int wallRight = startX + 15 * cellSize;
int wallBottom = startY + 19 * cellSize;
g.DrawRectangle(housePen, wallLeft, wallTop, wallRight - wallLeft, wallBottom - wallTop);
// Крыша (треугольник от клетки (3,10) до вершины (9,4) до (16,10))
Point[] roof = {
new Point(startX + 3 * cellSize, startY + 10 * cellSize),
new Point(startX + 9 * cellSize, startY + 4 * cellSize),
new Point(startX + 16 * cellSize, startY + 10 * cellSize)
};
g.DrawPolygon(housePen, roof);
// Дверь (от клетки (9,15) до (11,19))
g.DrawRectangle(housePen,
startX + 9 * cellSize, startY + 15 * cellSize,
2 * cellSize, 4 * cellSize);
// Окно (от клетки (6,12) до (8,14))
g.DrawRectangle(housePen,
startX + 6 * cellSize, startY + 12 * cellSize,
2 * cellSize, 2 * cellSize);
// Рама окна (крест)
g.DrawLine(housePen,
startX + 7 * cellSize, startY + 12 * cellSize,
startX + 7 * cellSize, startY + 14 * cellSize);
g.DrawLine(housePen,
startX + 6 * cellSize, startY + 13 * cellSize,
startX + 8 * cellSize, startY + 13 * cellSize);
// Труба (от клетки (13,7) до (14,10))
g.DrawRectangle(housePen,
startX + 13 * cellSize, startY + 7 * cellSize,
cellSize, 3 * cellSize);
}
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.Run(new HouseForm());
}
}
using System;
using System.Drawing;
using System.Windows.Forms;
class HouseForm : Form
{
public HouseForm()
{
this.Text = "Домик";
this.Size = new Size(500, 500);
this.Paint += (s, e) =>
{
Graphics g = e.Graphics;
int s5 = 5; // клетка 5 пикселей
// Сетка
for (int i = 0; i <= 20; i++)
{
g.DrawLine(Pens.LightGray, 50 + i * s5, 50, 50 + i * s5, 150);
g.DrawLine(Pens.LightGray, 50, 50 + i * s5, 150, 50 + i * s5);
}
// Домик (только черные линии)
g.DrawRectangle(Pens.Black, 70, 100, 55, 50); // стена
g.DrawLine(Pens.Black, 65, 100, 97, 70); // крыша левая
g.DrawLine(Pens.Black, 97, 70, 130, 100); // крыша правая
g.DrawRectangle(Pens.Black, 95, 130, 15, 20); // дверь
g.DrawRectangle(Pens.Black, 75, 110, 15, 15); // окно
g.DrawLine(Pens.Black, 82, 110, 82, 125); // рама |
g.DrawLine(Pens.Black, 75, 117, 90, 117); // рама —
g.DrawRectangle(Pens.Black, 115, 85, 5, 15); // труба
};
}
static void Main()
{
Application.Run(new HouseForm());
}
}