PIbd-22. Bulatova K.R. LabWork_01 #1

Merged
bulatova_karina merged 4 commits from LabWork_01 into main 2023-09-27 09:59:16 +04:00
Showing only changes of commit 5a20381dea - Show all commits

View File

@ -32,13 +32,13 @@ namespace WarmlyShip
/// </summary>
private int _startPosY;
/// <summary>
/// Ширина прорисовки автомобиля
/// Ширина прорисовки теплохода
/// </summary>
private readonly int _carWidth = 110;
private readonly int _WarmlyShipWidth = 170;
/// <summary>
/// Высота прорисовки автомобиля
/// Высота прорисовки теплохода
/// </summary>
private readonly int _carHeight = 60;
private readonly int _WarmlyShipHeight = 180;
/// <summary>
/// Инициализация свойств
/// </summary>
@ -102,11 +102,17 @@ additionalColor, bool bodyKit, bool wing, bool sportLine, int width, int height)
break;
// вправо
case DirectionType.Right:
_startPosX += (int)EntityWarmlyShip.Step;
if (_startPosX + _WarmlyShipWidth + EntityWarmlyShip.Step < _pictureWidth)
{
_startPosX += (int)EntityWarmlyShip.Step;
}
break;
//вниз
case DirectionType.Down:
_startPosY += (int)EntityWarmlyShip.Step;
if (_startPosY + _WarmlyShipHeight + EntityWarmlyShip.Step < _pictureHeight)
{
_startPosY += (int)EntityWarmlyShip.Step;
}
break;
}
}
@ -120,121 +126,36 @@ additionalColor, bool bodyKit, bool wing, bool sportLine, int width, int height)
{
return;
}
Pen pen = new(Color.Black);
Brush additionalBrush = new
SolidBrush(EntityWarmlyShip.AdditionalColor);
// обвесы
if (EntityWarmlyShip.BodyKit)
Pen pen = new(Color.Black, 2);
Pen anchor = new(Color.Black, 4);
Brush additionalBrush = new SolidBrush(EntityWarmlyShip.BodyColor);
//корпус теплохода
Point[] hull = new Point[]
{
g.DrawEllipse(pen, _startPosX + 90, _startPosY, 20, 20);
g.DrawEllipse(pen, _startPosX + 90, _startPosY + 40, 20,
20);
g.DrawRectangle(pen, _startPosX + 90, _startPosY + 10,
20, 40);
g.DrawRectangle(pen, _startPosX + 90, _startPosY, 15,
15);
g.DrawRectangle(pen, _startPosX + 90, _startPosY + 45,
15, 15);
g.FillEllipse(additionalBrush, _startPosX + 90,
_startPosY, 20, 20);
g.FillEllipse(additionalBrush, _startPosX + 90,
_startPosY + 40, 20, 20);
g.FillRectangle(additionalBrush, _startPosX + 90,
_startPosY + 10, 20, 40);
g.FillRectangle(additionalBrush, _startPosX + 90,
_startPosY + 1, 15, 15);
g.FillRectangle(additionalBrush, _startPosX + 90,
_startPosY + 45, 15, 15);
g.DrawEllipse(pen, _startPosX, _startPosY, 20, 20);
g.DrawEllipse(pen, _startPosX, _startPosY + 40, 20, 20);
g.DrawRectangle(pen, _startPosX, _startPosY + 10, 20,
40);
g.DrawRectangle(pen, _startPosX + 5, _startPosY, 14,
15);
g.DrawRectangle(pen, _startPosX + 5, _startPosY + 45,
14, 15);
g.FillEllipse(additionalBrush, _startPosX, _startPosY,
20, 20);
g.FillEllipse(additionalBrush, _startPosX, _startPosY +
40, 20, 20);
g.FillRectangle(additionalBrush, _startPosX + 1,
_startPosY + 10, 25, 40);
g.FillRectangle(additionalBrush, _startPosX + 5,
_startPosY + 1, 15, 15);
g.FillRectangle(additionalBrush, _startPosX + 5,
_startPosY + 45, 15, 15);
g.DrawRectangle(pen, _startPosX + 35, _startPosY, 39,
15);
g.DrawRectangle(pen, _startPosX + 35, _startPosY + 45,
39, 15);
g.FillRectangle(additionalBrush, _startPosX + 35,
_startPosY + 1, 40, 15);
g.FillRectangle(additionalBrush, _startPosX + 35,
_startPosY + 45, 40, 15);
}
//границы автомобиля
g.DrawEllipse(pen, _startPosX + 10, _startPosY + 5, 20, 20);
g.DrawEllipse(pen, _startPosX + 10, _startPosY + 35, 20, 20);
g.DrawEllipse(pen, _startPosX + 80, _startPosY + 5, 20, 20);
g.DrawEllipse(pen, _startPosX + 80, _startPosY + 35, 20, 20);
g.DrawRectangle(pen, _startPosX + 9, _startPosY + 15, 10, 30);
g.DrawRectangle(pen, _startPosX + 90, _startPosY + 15, 10,
30);
g.DrawRectangle(pen, _startPosX + 20, _startPosY + 4, 70, 52);
//задние фары
Brush brRed = new SolidBrush(Color.Red);
g.FillEllipse(brRed, _startPosX + 10, _startPosY + 5, 20, 20);
g.FillEllipse(brRed, _startPosX + 10, _startPosY + 35, 20,
20);
//передние фары
Brush brYellow = new SolidBrush(Color.Yellow);
g.FillEllipse(brYellow, _startPosX + 80, _startPosY + 5, 20,
20);
g.FillEllipse(brYellow, _startPosX + 80, _startPosY + 35, 20,
20);
//кузов
Brush br = new SolidBrush(EntityWarmlyShip.BodyColor);
g.FillRectangle(br, _startPosX + 10, _startPosY + 15, 10, 30);
g.FillRectangle(br, _startPosX + 90, _startPosY + 15, 10, 30);
g.FillRectangle(br, _startPosX + 20, _startPosY + 5, 70, 50);
//стекла
Brush brBlue = new SolidBrush(Color.LightBlue);
g.FillRectangle(brBlue, _startPosX + 70, _startPosY + 10, 5,
40);
g.FillRectangle(brBlue, _startPosX + 30, _startPosY + 10, 5,
40);
g.FillRectangle(brBlue, _startPosX + 35, _startPosY + 8, 35,
2);
g.FillRectangle(brBlue, _startPosX + 35, _startPosY + 51, 35,
2);
//выделяем рамкой крышу
g.DrawRectangle(pen, _startPosX + 35, _startPosY + 10, 35,
40);
g.DrawRectangle(pen, _startPosX + 75, _startPosY + 15, 25,
30);
g.DrawRectangle(pen, _startPosX + 10, _startPosY + 15, 15,
30);
// спортивная линия
if (EntityWarmlyShip.SportLine)
{
g.FillRectangle(additionalBrush, _startPosX + 75,
_startPosY + 23, 25, 15);
g.FillRectangle(additionalBrush, _startPosX + 35,
_startPosY + 23, 35, 15);
g.FillRectangle(additionalBrush, _startPosX + 10,
_startPosY + 23, 20, 15);
}
// крыло
if (EntityWarmlyShip.Wing)
{
g.FillRectangle(additionalBrush, _startPosX, _startPosY
+ 5, 10, 50);
g.DrawRectangle(pen, _startPosX, _startPosY + 5, 10,
50);
}
new Point(_startPosX + 10, _startPosY + 115),
new Point(_startPosX + 190, _startPosY + 115),
new Point(_startPosX + 150, _startPosY + 190),
new Point(_startPosX + 50, _startPosY + 190),
};
g.FillPolygon(additionalBrush, hull);
g.DrawPolygon(pen, hull);
Brush bra = new SolidBrush(EntityWarmlyShip.AdditionalColor);
//палуба
g.FillRectangle(bra, _startPosX + 35, _startPosY + 85, 130, 30);
g.DrawRectangle(pen, _startPosX + 35, _startPosY + 85, 130, 30);
//отсек для топлива
Brush brGray = new SolidBrush(Color.Gray);
g.FillEllipse(brGray, _startPosX + 140, _startPosY + 130, 20, 20);
g.DrawEllipse(pen, _startPosX + 140, _startPosY + 130, 20, 20);
//трубы
g.FillRectangle(additionalBrush, _startPosX + 65, _startPosY + 5, 25, 80);
g.DrawRectangle(pen, _startPosX + 65, _startPosY + 5, 25, 80);
g.FillRectangle(additionalBrush, _startPosX + 100, _startPosY + 25, 25, 60);
g.DrawRectangle(pen, _startPosX + 100, _startPosY + 25, 25, 60);
//якорь
g.DrawLine(anchor, new Point(_startPosX + 50, _startPosY + 130), new Point(_startPosX + 50,_startPosY + 150));
g.DrawLine(anchor, new Point(_startPosX + 40, _startPosY + 140), new Point(_startPosX + 60, _startPosY + 140));
g.DrawLine(anchor, new Point(_startPosX + 45, _startPosY + 150), new Point(_startPosX + 55, _startPosY + 150));
}
}
}