diff --git a/Locomative/Locomative/DrawningLocomative.cs b/Locomative/Locomative/DrawningLocomative.cs index 6918d8d..48a0bd7 100644 --- a/Locomative/Locomative/DrawningLocomative.cs +++ b/Locomative/Locomative/DrawningLocomative.cs @@ -59,9 +59,40 @@ namespace Locomative } public void DrawTransport(Graphics g) { - if(_startPosX<0 || _startPosY<0 || !_pictureWidth.HasValue || !_pictureHeight.HasValue) return; + if (_startPosX <= 0 || _startPosY <= 0 || !_pictureWidth.HasValue || !_pictureHeight.HasValue) return; + //кисти Pen pen = new(Color.Black); - g.DrawEllipse(pen, _startPosX, _startPosY, 20, 20); + Brush brRed = new SolidBrush(Color.Red); + Brush brBlue = new SolidBrush(Color.Blue); + Brush brGray = new SolidBrush(Color.Gray); + Brush brBlack = new SolidBrush(Color.Black); + //Платформа поезда + g.FillRectangle(brBlack, _startPosX, _startPosY, 90, 40); + //котёл + g.FillRectangle(brBlue, _startPosX + 30, _startPosY + 10, 60, 20); + g.DrawLine(pen, _startPosX + 30, _startPosY + 10, _startPosX + 70, _startPosY + 10); + g.DrawLine(pen, _startPosX + 70, _startPosY + 10, _startPosX + 70, _startPosY + 30); + g.DrawLine(pen, _startPosX + 70, _startPosY + 30, _startPosX + 30, _startPosY + 30); + g.DrawLine(pen, _startPosX + 30, _startPosY + 30, _startPosX + 30, _startPosY + 10); + //крыша поезда + g.FillRectangle(brRed, _startPosX - 2, _startPosY - 2, 34, 44); + g.DrawLine(pen, _startPosX - 2, _startPosY - 2, _startPosX + 32, _startPosY - 2); + g.DrawLine(pen, _startPosX + 32, _startPosY - 2, _startPosX + 32, _startPosY + 42); + g.DrawLine(pen, _startPosX + 32, _startPosY + 42, _startPosX - 2, _startPosY + 42); + g.DrawLine(pen, _startPosX - 2, _startPosY + 42, _startPosX - 2, _startPosY - 2); + //трубы + g.FillEllipse(brGray, _startPosX + 36, _startPosY + 16, 8, 8); + g.FillEllipse(brBlack, _startPosX + 35, _startPosY + 15, 10, 10); + g.FillEllipse(brGray, _startPosX + 56, _startPosY + 16, 8, 8); + g.FillEllipse(brBlack, _startPosX + 55, _startPosY + 15, 10, 10); + g.FillEllipse(brGray, _startPosX + 70, _startPosY + 10, 20, 20); + g.FillEllipse(brBlack, _startPosX + 73, _startPosY + 13, 14, 14); + //бампер + Point point1 = new Point(Convert.ToInt32(_startPosX + 90), Convert.ToInt32(_startPosY)); + Point point2 = new Point(Convert.ToInt32(_startPosX + 110), Convert.ToInt32(_startPosY + 20)); + Point point3 = new Point(Convert.ToInt32(_startPosX + 90), Convert.ToInt32(_startPosY + 40)); + Point[] points = { point1, point2, point3 }; + g.FillPolygon(brGray, points); } public void ChangeBorders(int width, int height) {