Доработал SetPosition и SetPictureSize

This commit is contained in:
gettterot 2024-02-21 16:33:40 +04:00
parent d50a0855a0
commit 997c87a792
2 changed files with 42 additions and 14 deletions

View File

@ -33,7 +33,7 @@ public class DrawningLiner
/// <summary> /// <summary>
/// Ширина прорисовки лайнера /// Ширина прорисовки лайнера
/// </summary> /// </summary>
private readonly int _drawningLinerWidth = 180; private readonly int _drawningLinerWidth = 150;
/// <summary> /// <summary>
/// Высота прорисовки лайнера /// Высота прорисовки лайнера
@ -68,9 +68,29 @@ public class DrawningLiner
/// <returns>true - границы заданы, false - проверка не пройдена, нельзя разместить объект в этих размерах</returns> /// <returns>true - границы заданы, false - проверка не пройдена, нельзя разместить объект в этих размерах</returns>
public bool SetPictureSize(int width, int height) public bool SetPictureSize(int width, int height)
{ {
_pictureWidth = width; if (width > _drawningLinerWidth && height > _drawningLinerHeight)
_pictureHeight = height; {
return true; _pictureWidth = width;
_pictureHeight = height;
if (_startPosX != null && _startPosY != null)
{
if (_startPosX.Value < 0)
_startPosX = 0;
if (_startPosY.Value < 0)
_startPosY = 0;
if (_startPosX.Value + _drawningLinerWidth > _pictureWidth)
{
_startPosX = _pictureWidth - _drawningLinerWidth;
}
if (_startPosY.Value + _drawningLinerHeight > _pictureHeight)
{
_startPosY = _pictureHeight - _drawningLinerHeight;
}
}
return true;
}
return false;
} }
/// <summary> /// <summary>
@ -84,16 +104,22 @@ public class DrawningLiner
{ {
return; return;
} }
else
if (x < 0 || y < 0)
{ {
return; _startPosX = x;
_startPosY = y;
if (_startPosX.Value + _drawningLinerWidth > _pictureWidth)
{
_startPosX = _pictureWidth - _drawningLinerWidth;
}
if (_startPosY.Value + _drawningLinerHeight > _pictureHeight)
{
_startPosY = _pictureHeight - _drawningLinerHeight;
}
} }
_startPosX = x;
_startPosY = y;
} }
/// <summary> /// <summary>
/// Изменение направления перемещения /// Изменение направления перемещения
/// </summary> /// </summary>
@ -169,7 +195,7 @@ public class DrawningLiner
Point point1 = new Point(_startPosX.Value, _startPosY.Value + 80); Point point1 = new Point(_startPosX.Value, _startPosY.Value + 80);
Point point2 = new Point(_startPosX.Value + 50, _startPosY.Value + 130); Point point2 = new Point(_startPosX.Value + 50, _startPosY.Value + 130);
Point point3 = new Point(_startPosX.Value + 135, _startPosY.Value + 130); Point point3 = new Point(_startPosX.Value + 135, _startPosY.Value + 130);
Point point4 = new Point(_startPosX.Value + 185, _startPosY.Value + 80); Point point4 = new Point(_startPosX.Value + 155, _startPosY.Value + 80);
Point[] curvePoints = { point1, point2, point3, point4 }; Point[] curvePoints = { point1, point2, point3, point4 };
g.FillPolygon(br, curvePoints); g.FillPolygon(br, curvePoints);
@ -185,9 +211,9 @@ public class DrawningLiner
// шлюпки // шлюпки
if (EntityLiner.Boats) if (EntityLiner.Boats)
{ {
g.FillEllipse(additionalBrush, _startPosX.Value + 60, _startPosY.Value + 85, 30, 15); g.FillEllipse(additionalBrush, _startPosX.Value + 40, _startPosY.Value + 85, 30, 15);
g.FillEllipse(additionalBrush, _startPosX.Value + 95, _startPosY.Value + 85, 30, 15); g.FillEllipse(additionalBrush, _startPosX.Value + 75, _startPosY.Value + 85, 30, 15);
g.FillEllipse(additionalBrush, _startPosX.Value + 130, _startPosY.Value + 85, 30, 15); g.FillEllipse(additionalBrush, _startPosX.Value + 110, _startPosY.Value + 85, 30, 15);
} }
// труба // труба

View File

@ -39,6 +39,7 @@
// //
// pictureBoxLiner // pictureBoxLiner
// //
pictureBoxLiner.BackColor = SystemColors.Control;
pictureBoxLiner.Dock = DockStyle.Fill; pictureBoxLiner.Dock = DockStyle.Fill;
pictureBoxLiner.Location = new Point(0, 0); pictureBoxLiner.Location = new Point(0, 0);
pictureBoxLiner.Name = "pictureBoxLiner"; pictureBoxLiner.Name = "pictureBoxLiner";
@ -48,6 +49,7 @@
// //
// buttonCreate // buttonCreate
// //
buttonCreate.Anchor = AnchorStyles.Bottom | AnchorStyles.Left;
buttonCreate.Location = new Point(12, 520); buttonCreate.Location = new Point(12, 520);
buttonCreate.Name = "buttonCreate"; buttonCreate.Name = "buttonCreate";
buttonCreate.Size = new Size(150, 82); buttonCreate.Size = new Size(150, 82);