нечеткости исправны

This commit is contained in:
Aleksandr4350 2024-02-21 13:35:42 +04:00
parent 73667d4f8a
commit e26698bfed
2 changed files with 51 additions and 23 deletions

View File

@ -39,7 +39,6 @@ public class DrawningAiroplane
/// </summary> /// </summary>
private readonly int _drawningaAiroplaneHeight = 110; private readonly int _drawningaAiroplaneHeight = 110;
/// <summary> /// <summary>
/// Инициализация свойств /// Инициализация свойств
/// </summary> /// </summary>
@ -47,15 +46,14 @@ public class DrawningAiroplane
/// <param name="weight">Вес</param> /// <param name="weight">Вес</param>
/// <param name="bodyColor">Основной цвет</param> /// <param name="bodyColor">Основной цвет</param>
/// <param name="additionalColor">Дополнительный цвет</param> /// <param name="additionalColor">Дополнительный цвет</param>
/// <param name="bodyKit">Признак наличия обвеса</param> /// <param name="toplivbak">Признак наличия бака</param>
/// <param name="wing">Признак наличия антикрыла</param> /// <param name="radar">Признак наличия радара</param>
/// <param name="sportLine">Признак наличия гоночной полосы</param> /// <param name="sportLine">Признак наличия гоночной полосы</param>
public void Init(int speed, double weight, Color bodyColor, Color public void Init(int speed, double weight, Color bodyColor, Color
additionalColor, bool bodyKit, bool wing, bool sportLine) additionalColor, bool toplivbak, bool radar, bool sportLine)
{ {
EntityAiroplane = new EntityAiroplane(); EntityAiroplane = new EntityAiroplane();
EntityAiroplane.Init(speed, weight, bodyColor, additionalColor, EntityAiroplane.Init(speed, weight, bodyColor, additionalColor, toplivbak, radar, sportLine);
bodyKit, wing, sportLine);
_pictureWidth = null; _pictureWidth = null;
_pictureHeight = null; _pictureHeight = null;
_startPosX = null; _startPosX = null;
@ -77,6 +75,20 @@ public bool SetPictureSize(int width, int height)
{ {
_pictureWidth = width; _pictureWidth = width;
_pictureHeight = height; _pictureHeight = height;
if (_startPosX.HasValue && _startPosY.HasValue)
{
if (_startPosX + _drawningAiroplaneWidth <= _pictureWidth)
{
_startPosX = 0;
}
if (_startPosY + _drawningaAiroplaneHeight <= _pictureWidth)
{
_startPosY = 0;
}
}
return true; return true;
} }
return false; return false;
@ -100,20 +112,22 @@ public bool SetPictureSize(int width, int height)
{ {
x = 0; x = 0;
} }
else if (x + _drawningAiroplaneWidth > _pictureWidth.Value) else if (x + _drawningAiroplaneWidth > _pictureWidth.Value)
{ {
x = _pictureWidth.Value - _drawningAiroplaneWidth; x = _pictureWidth.Value - _drawningAiroplaneWidth;
} }
if (y < 0) if (y < 0)
{ {
y = 0; y = 0;
} }
else if (y + _drawningaAiroplaneHeight > _pictureHeight.Value) else if (y + _drawningaAiroplaneHeight > _pictureHeight.Value)
{ {
y = _pictureHeight.Value - _drawningaAiroplaneHeight; y = _pictureHeight.Value - _drawningaAiroplaneHeight;
} }
_startPosX = x; _startPosX = x;
_startPosY = y; _startPosY = y;
} }
@ -189,7 +203,7 @@ public bool MoveTransport(DirectionType direction)
//задняя часть самолета полукруг //задняя часть самолета полукруг
g.DrawArc(pen, _startPosX.Value + 20, _startPosY.Value + 60, 30,30,90,180); g.DrawArc(pen, _startPosX.Value + 20, _startPosY.Value + 60, 30,30,90,180);
//топливный бак //сзади
g.DrawEllipse(pen, _startPosX.Value + 25, _startPosY.Value + 55, 40,10); g.DrawEllipse(pen, _startPosX.Value + 25, _startPosY.Value + 55, 40,10);
Brush brbr = new SolidBrush(Color.Brown); Brush brbr = new SolidBrush(Color.Brown);
g.FillEllipse(brbr, _startPosX.Value + 25, _startPosY.Value + 55, 40,10); g.FillEllipse(brbr, _startPosX.Value + 25, _startPosY.Value + 55, 40,10);
@ -206,7 +220,6 @@ public bool MoveTransport(DirectionType direction)
//вверх от тругольника до треугольника //вверх от тругольника до треугольника
g.DrawLine(pen, _startPosX.Value + 70, _startPosY.Value + 60, _startPosX.Value + 150, _startPosY.Value + 60); g.DrawLine(pen, _startPosX.Value + 70, _startPosY.Value + 60, _startPosX.Value + 150, _startPosY.Value + 60);
//крыло //крыло
g.DrawEllipse(pen, _startPosX.Value + 65, _startPosY.Value + 70, 70, 10); g.DrawEllipse(pen, _startPosX.Value + 65, _startPosY.Value + 70, 70, 10);
Brush brbl = new SolidBrush(Color.Black); Brush brbl = new SolidBrush(Color.Black);
@ -221,11 +234,26 @@ public bool MoveTransport(DirectionType direction)
g.DrawEllipse(pen, _startPosX.Value + 60, _startPosY.Value + 95, 10, 10); g.DrawEllipse(pen, _startPosX.Value + 60, _startPosY.Value + 95, 10, 10);
g.DrawEllipse(pen, _startPosX.Value + 130, _startPosY.Value + 95, 10, 10); g.DrawEllipse(pen, _startPosX.Value + 130, _startPosY.Value + 95, 10, 10);
//топливный бак
if (EntityAiroplane.Toplivbak)
{
g.FillRectangle(additionalBrush, _startPosX.Value + 80,_startPosY.Value + 45, 30, 15);
//g.FillRectangle(additionalBrush, _startPosX.Value + 35,_startPosY.Value + 23, 35, 15);
//g.FillRectangle(additionalBrush, _startPosX.Value + 10,_startPosY.Value + 23, 20, 15);
}
//g.DrawRectangle(pen, _startPosX.Value + 90, _startPosY.Value +10, 20, 40); //Радар
//g.DrawRectangle(pen, _startPosX.Value + 90, _startPosY.Value,15, 15); if (EntityAiroplane.Radar)
{
Brush brGreen = new SolidBrush(Color.LightGreen);
g.FillEllipse(brGreen, _startPosX.Value + 150, _startPosY.Value + 75, 10, 10);
g.DrawEllipse(pen, _startPosX.Value + 150, _startPosY.Value + 75, 10, 10);
}
// //спортивная линия
if (EntityAiroplane.SportLine) {
g.FillRectangle(additionalBrush, _startPosX.Value + 138, _startPosY.Value + 60, 10, 30);
}
} }
} }

View File

@ -19,13 +19,13 @@ public class EntityAiroplane
/// </summary> /// </summary>
public Color AdditionalColor { get; private set; } public Color AdditionalColor { get; private set; }
/// <summary> /// <summary>
/// Признак (опция) наличия обвеса /// Признак (опция) наличия бака
/// </summary> /// </summary>
public bool BodyKit { get; private set; } public bool Toplivbak { get; private set; }
/// <summary> /// <summary>
/// Признак (опция) наличия антикрыла /// Признак (опция) наличия радара
// </summary> // </summary>
public bool Wing { get; private set; } public bool Radar { get; private set; }
/// <summary> /// <summary>
/// Признак (опция) наличия гоночной полосы /// Признак (опция) наличия гоночной полосы
/// </summary> /// </summary>
@ -41,17 +41,17 @@ public class EntityAiroplane
/// <param name="weight"></вес> /// <param name="weight"></вес>
/// <param name="bodyColor"></Основной цвет> /// <param name="bodyColor"></Основной цвет>
/// <param name="additionalColor"></Дополнительный цвет> /// <param name="additionalColor"></Дополнительный цвет>
/// <param name="bodyKit"></ Признак наличия обвеса> /// <param name="toplivbak"></ Признак наличия бака>
/// <param name="wing"></Признак (опция) наличия антикрыла> /// <param name="radar"></Признак (опция) наличия радара>
/// <param name="sportLine"></Признак (опция) наличия гоночной полосы> /// <param name="sportLine"></Признак (опция) наличия гоночной полосы>
public void Init(int speed, double weight, Color bodyColor, Color additionalColor, bool bodyKit, bool wing, bool sportLine) public void Init(int speed, double weight, Color bodyColor, Color additionalColor, bool toplivbak, bool radar, bool sportLine)
{ {
Speed = speed; Speed = speed;
Weight = weight; Weight = weight;
BodyColor = bodyColor; BodyColor = bodyColor;
AdditionalColor = additionalColor; AdditionalColor = additionalColor;
BodyKit = bodyKit; Toplivbak = toplivbak;
Wing = wing; Radar = radar;
SportLine = sportLine; SportLine = sportLine;
} }