Лабораторная работа №1

This commit is contained in:
Esenia12 2024-02-18 18:04:32 +04:00
parent ae71f42613
commit fddd767e57
4 changed files with 30 additions and 235 deletions

View File

@ -40,6 +40,8 @@ public class DrawningDumpTrack
/// </summary> /// </summary>
private readonly int _drawningDumpTrackHeight = 90; private readonly int _drawningDumpTrackHeight = 90;
/// <summary> /// <summary>
/// Инициализация свойств /// Инициализация свойств
/// </summary> /// </summary>
@ -50,16 +52,20 @@ public class DrawningDumpTrack
/// <param name="bodywork">Признак наличия кузова</param> /// <param name="bodywork">Признак наличия кузова</param>
/// <param name="awning">Признак наличия тента</param> /// <param name="awning">Признак наличия тента</param>
public void Init(int speed, double weight, Color bodyColor, Color additionalColor, bool bodywork, bool awning) public void Init(int speed, double weight, Color bodyColor, Color additionalColor, bool bodywork, bool awning)
{ {
EntityDumpTruck = new EntityDumpTruck(); EntityDumpTruck = new EntityDumpTruck();
EntityDumpTruck.Init(speed, weight, bodyColor, additionalColor, bodywork, awning); EntityDumpTruck.Init(speed, weight, bodyColor, additionalColor, bodywork, awning);
_pictureWidth = null; _pictureWidth = null;
_pictureHeight = null; _pictureHeight = null;
_startPosX = null; _startPosX = null;
_startPosY = null; _startPosY = null;
} }
/// <summary> /// <summary>
/// Установка границ поля /// Установка границ поля
/// </summary> /// </summary>
@ -70,14 +76,11 @@ public class DrawningDumpTrack
{ {
// TODO проверка, что объект "влезает" в размеры поля // TODO проверка, что объект "влезает" в размеры поля
// если влезает, сохраняем границы и корректируем позицию объекта, если она была уже установлена // если влезает, сохраняем границы и корректируем позицию объекта, если она была уже установлена
if (_drawningDumpTrackWidth > width) if (_drawningDumpTrackWidth > width || _drawningDumpTrackHeight > height)
{ {
width += _drawningDumpTrackWidth-width; return false;
}
if (_drawningDumpTrackHeight > height)
{
height += _drawningDumpTrackHeight-height;
} }
_pictureWidth = width; _pictureWidth = width;
_pictureHeight = height; _pictureHeight = height;
return true; return true;
@ -96,7 +99,7 @@ public class DrawningDumpTrack
} }
// TODO если при установке объекта в эти координаты, он будет "выходить" за границы формы // TODO если при установке объекта в эти координаты, он будет "выходить" за границы формы
// то надо изменить координаты, чтобы он оставался в этих границах // то надо изменить координаты, чтобы он оставался в этих границах
if (x + _drawningDumpTrackWidth > _pictureWidth) if (x + _drawningDumpTrackWidth > _pictureWidth )
{ {
x -= _drawningDumpTrackWidth - (int)_pictureWidth; x -= _drawningDumpTrackWidth - (int)_pictureWidth;
} }
@ -104,8 +107,19 @@ public class DrawningDumpTrack
{ {
y -= _drawningDumpTrackHeight - (int)_pictureHeight; y -= _drawningDumpTrackHeight - (int)_pictureHeight;
} }
if (x < 0)
{
x = 0;
}
if (y < 0)
{
y = 0;
}
_startPosX = x; _startPosX = x;
_startPosY = y; _startPosY = y;
} }
/// <summary> /// <summary>
/// Изменение направления перемещения /// Изменение направления перемещения
@ -201,231 +215,7 @@ public class DrawningDumpTrack
g.FillRectangle(border, _startPosX.Value+30, _startPosY.Value, 3, 40); g.FillRectangle(border, _startPosX.Value+30, _startPosY.Value, 3, 40);
g.FillRectangle(border, _startPosX.Value+70, _startPosY.Value, 3, 40); g.FillRectangle(border, _startPosX.Value+70, _startPosY.Value, 3, 40);
} }
} }
} }

View File

@ -60,6 +60,9 @@ public class EntityDumpTruck
Awning = awning; Awning = awning;
} }
} }

View File

@ -52,7 +52,8 @@ namespace ProjectDumpTruck
Draw(); Draw();
} }
/// <summary> /// <summary>
/// Перемещение объекта по форме (нажатие кнопок навигации) /// Перемещение объекта по форме (нажатие кнопок навигации)
/// </summary> /// </summary>

View File

@ -12,6 +12,7 @@ namespace ProjectDumpTruck
// see https://aka.ms/applicationconfiguration. // see https://aka.ms/applicationconfiguration.
ApplicationConfiguration.Initialize(); ApplicationConfiguration.Initialize();
Application.Run(new FormTransport()); Application.Run(new FormTransport());
} }
} }
} }