корректировка лабы 1

This commit is contained in:
ekallin 2023-09-12 20:51:58 +04:00
parent a8e887e77d
commit 8a9112530c
2 changed files with 32 additions and 43 deletions

View File

@ -17,12 +17,10 @@ namespace ElectricLocomotive
private readonly int _locoWidth = 150; private readonly int _locoWidth = 150;
private readonly int _locoHeight = 50; private readonly int _locoHeight = 50;
public bool Init(int speed, double weight, Color bodyColor, Color additionalColor, bool kolesaRight, bool kolesaLeft, public bool Init(int speed, double weight, Color bodyColor, Color additionalColor, bool horns, bool seifbatteries,
int width, int height) int width, int height)
{ {
/// <summary>
/// проверка, что размеры формы больше или равны размерам рисуемого объекта
/// </summary>
if (width < _locoWidth || height < _locoHeight) if (width < _locoWidth || height < _locoHeight)
{ {
return false; return false;
@ -30,7 +28,7 @@ namespace ElectricLocomotive
_pictureWidth = width; _pictureWidth = width;
_pictureHeight = height; _pictureHeight = height;
EntityElectricLocomotive = new EntityElectricLocomotive(); EntityElectricLocomotive = new EntityElectricLocomotive();
EntityElectricLocomotive.Init(speed, weight, bodyColor, additionalColor, kolesaRight, kolesaLeft); EntityElectricLocomotive.Init(speed, weight, bodyColor, additionalColor, horns, seifbatteries);
return true; return true;
} }
@ -95,14 +93,28 @@ namespace ElectricLocomotive
Brush bodyColor = new SolidBrush(EntityElectricLocomotive.BodyColor); Brush bodyColor = new SolidBrush(EntityElectricLocomotive.BodyColor);
Brush additionalBrush = new SolidBrush(EntityElectricLocomotive.AdditionalColor); Brush additionalBrush = new SolidBrush(EntityElectricLocomotive.AdditionalColor);
if (EntityElectricLocomotive.KolesaLeft) if (EntityElectricLocomotive.Horns)
{ {
g.FillEllipse(blackBrush, _startPosX + 130, _startPosY + 45, 5, 5); //horns
g.FillRectangle(blackBrush, _startPosX + 30, _startPosY + 15, 20, 5);
g.DrawLine(pen, _startPosX + 40, _startPosY + 15, _startPosX + 50, _startPosY + 10);
g.DrawLine(pen, _startPosX + 50, _startPosY + 10, _startPosX + 45, _startPosY);
g.DrawLine(pen, _startPosX + 45, _startPosY + 15, _startPosX + 50, _startPosY + 10);
g.DrawLine(pen, _startPosX + 50, _startPosY + 10, _startPosX + 40, _startPosY);
} }
if (EntityElectricLocomotive.KolesaRight) if (EntityElectricLocomotive.Seifbatteries)
{ {
g.FillEllipse(blackBrush, _startPosX + 105, _startPosY + 45, 5, 5); //g.DrawRectangle(pen, _startPosX + 50, _startPosY + 25, 20, 10);
g.DrawPolygon(pen, new Point[]
{
new Point(_startPosX + 40, _startPosY + 25),
new Point(_startPosX + 65, _startPosY + 25),
new Point(_startPosX + 65, _startPosY + 35),
new Point(_startPosX + 40, _startPosY + 35),
new Point(_startPosX + 40, _startPosY + 25),
}
);
} }
//локомотив //локомотив
@ -160,18 +172,6 @@ namespace ElectricLocomotive
g.FillRectangle(windows, _startPosX + 25, _startPosY + 25, 10, 5); g.FillRectangle(windows, _startPosX + 25, _startPosY + 25, 10, 5);
g.DrawRectangle(pen, _startPosX + 25, _startPosY + 25, 10, 5); g.DrawRectangle(pen, _startPosX + 25, _startPosY + 25, 10, 5);
//электробатареи
g.DrawRectangle(pen, _startPosX + 50, _startPosY + 25, 20, 10);
//horns
g.FillRectangle(blackBrush, _startPosX + 30, _startPosY + 15, 20, 5);
g.DrawLine(pen, _startPosX + 40, _startPosY + 15, _startPosX + 50, _startPosY + 10);
g.DrawLine(pen, _startPosX + 50, _startPosY + 10, _startPosX + 45, _startPosY);
g.DrawLine(pen, _startPosX + 45, _startPosY + 15, _startPosX + 50, _startPosY + 10);
g.DrawLine(pen, _startPosX + 50, _startPosY + 10, _startPosX + 40, _startPosY);
//лбязательные колеса //лбязательные колеса
//loco //loco
g.FillEllipse(blackBrush, _startPosX + 10, _startPosY + 45, 5, 5); g.FillEllipse(blackBrush, _startPosX + 10, _startPosY + 45, 5, 5);
@ -183,6 +183,9 @@ namespace ElectricLocomotive
g.FillEllipse(blackBrush, _startPosX + 95, _startPosY + 45, 5, 5); g.FillEllipse(blackBrush, _startPosX + 95, _startPosY + 45, 5, 5);
g.FillEllipse(blackBrush, _startPosX + 140, _startPosY + 45, 5, 5); g.FillEllipse(blackBrush, _startPosX + 140, _startPosY + 45, 5, 5);
g.FillEllipse(blackBrush, _startPosX + 130, _startPosY + 45, 5, 5);
g.FillEllipse(blackBrush, _startPosX + 105, _startPosY + 45, 5, 5);
//telejka //telejka
g.FillPolygon(bodyColor, new Point[] g.FillPolygon(bodyColor, new Point[]
{ {
@ -216,6 +219,3 @@ namespace ElectricLocomotive
} }
} }
} }
//ПРОВЕРКА ВТОРОЙ ВЕТКИ

View File

@ -12,28 +12,17 @@ namespace ElectricLocomotive
public double Weight { get; private set; } public double Weight { get; private set; }
public Color BodyColor { get; private set; } public Color BodyColor { get; private set; }
public Color AdditionalColor { get; private set; } public Color AdditionalColor { get; private set; }
public bool KolesaRight { get; private set; } public bool Horns { get; private set; }
public bool Seifbatteries { get; private set; }
public bool KolesaLeft { get; private set; }
public double Step => (double)Speed * 100 / Weight; public double Step => (double)Speed * 100 / Weight;
/// <summary> public void Init(int speed, double weight, Color bodyColor, Color additionalColor, bool horns, bool seifbatteries)
/// Инициализация полей объекта-класса спортивного автомобиля
/// </summary>
/// <param name="speed">Скорость</param>
/// <param name="weight">Вес автомобиля</param>
/// <param name="bodyColor">Основной цвет</param>
/// <param name="additionalColor">Дополнительный цвет</param>
/// <param name="bodyKit">Признак наличия обвеса</param>
/// <param name="wing">Признак наличия антикрыла</param>
/// <param name="sportLine">Признак наличия гоночной полосы</param>
public void Init(int speed, double weight, Color bodyColor, Color additionalColor, bool kolesaRight, bool kolesaLeft)
{ {
Speed = speed; Speed = speed;
Weight = weight; Weight = weight;
BodyColor = bodyColor; BodyColor = bodyColor;
AdditionalColor = additionalColor; AdditionalColor = additionalColor;
KolesaRight = kolesaRight; Horns = horns;
KolesaLeft = kolesaLeft; Seifbatteries = seifbatteries;
} }
} }