86 lines
3.1 KiB
C#
86 lines
3.1 KiB
C#
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.Drawing;
|
|||
|
using System.Text;
|
|||
|
|
|||
|
namespace WinFormsApp1
|
|||
|
{
|
|||
|
class MultiTraktorDraw : TractorDraw
|
|||
|
{
|
|||
|
/// Инициализация свойств
|
|||
|
/// <param name="speed">Скорость</param>
|
|||
|
/// <param name="weight">Вес трактора</param>
|
|||
|
/// <param name="bodyColor">Цвет кузова</param>
|
|||
|
/// <param name="dopColor">Дополнительный цвет</param>
|
|||
|
/// <param name="trktrWidth">Ширина отрисовки автомобиля</param>
|
|||
|
/// <param name="trktrHeight">Высота отрисовки автомобиля</param>
|
|||
|
public MultiTraktorDraw(int speed, float weight, Color bodyColor, Color dopColor) : base(speed, weight, bodyColor, 188, 100)
|
|||
|
{
|
|||
|
Tractor = new MultiTraktor(speed, weight, bodyColor, dopColor);
|
|||
|
}
|
|||
|
|
|||
|
public override void DrawEntity(Graphics g)
|
|||
|
{
|
|||
|
if (Tractor is not MultiTraktor multiTraktor)
|
|||
|
{
|
|||
|
return;
|
|||
|
}
|
|||
|
Pen pen_Black_1pxl = new Pen(Color.Black, 1);
|
|||
|
Pen pen_Black_2pxl = new Pen(Color.Black, 2);
|
|||
|
Brush brBlack = new SolidBrush(Color.Black);
|
|||
|
Brush dopBrush = new SolidBrush(multiTraktor.DopColor);
|
|||
|
|
|||
|
PointF point1;
|
|||
|
PointF point2;
|
|||
|
PointF point3;
|
|||
|
PointF point4;
|
|||
|
|
|||
|
g.DrawRectangle(pen_Black_1pxl, startPosX, startPosY + 8, 4, 35);
|
|||
|
g.DrawRectangle(pen_Black_1pxl, startPosX + 33, startPosY + 34, 10, 15);
|
|||
|
|
|||
|
point1 = new PointF(startPosX, startPosY + 8);
|
|||
|
point2 = new PointF(startPosX + 33, startPosY + 41);
|
|||
|
point3 = new PointF(startPosX + 33, startPosY + 34);
|
|||
|
point4 = new PointF(startPosX + 7, startPosY + 8);
|
|||
|
PointF[] curvePoints =
|
|||
|
{
|
|||
|
point1,
|
|||
|
point2,
|
|||
|
point3,
|
|||
|
point4
|
|||
|
};
|
|||
|
g.FillPolygon(dopBrush, curvePoints);
|
|||
|
g.DrawPolygon(pen_Black_1pxl, curvePoints);
|
|||
|
|
|||
|
point1 = new PointF(startPosX + 6, startPosY + 8 + 15);
|
|||
|
point2 = new PointF(startPosX + 6, startPosY + 8 + 35);
|
|||
|
point3 = new PointF(startPosX + 26, startPosY + 8 + 35);
|
|||
|
PointF[] curvePoints2 =
|
|||
|
{
|
|||
|
point1,
|
|||
|
point2,
|
|||
|
point3
|
|||
|
};
|
|||
|
g.FillPolygon(dopBrush, curvePoints2);
|
|||
|
g.DrawPolygon(pen_Black_1pxl, curvePoints2);
|
|||
|
|
|||
|
startPosX += 43;
|
|||
|
base.DrawEntity(g);
|
|||
|
startPosX -= 43;
|
|||
|
|
|||
|
point1 = new PointF(startPosX + 43 + 102, startPosY + 30);
|
|||
|
point2 = new PointF(startPosX + 43 + 102, startPosY + 65);
|
|||
|
point3 = new PointF(startPosX + 43 + 137, startPosY + 65);
|
|||
|
|
|||
|
PointF[] curvePoints3 =
|
|||
|
{
|
|||
|
point1,
|
|||
|
point2,
|
|||
|
point3
|
|||
|
};
|
|||
|
g.FillPolygon(dopBrush, curvePoints3);
|
|||
|
g.DrawPolygon(pen_Black_1pxl, curvePoints3);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|