Доработал SetPosition и SetPictureSize
This commit is contained in:
parent
d50a0855a0
commit
997c87a792
@ -33,7 +33,7 @@ public class DrawningLiner
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Ширина прорисовки лайнера
|
/// Ширина прорисовки лайнера
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private readonly int _drawningLinerWidth = 180;
|
private readonly int _drawningLinerWidth = 150;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Высота прорисовки лайнера
|
/// Высота прорисовки лайнера
|
||||||
@ -67,11 +67,31 @@ public class DrawningLiner
|
|||||||
/// <param name="height">Высота поля</param>
|
/// <param name="height">Высота поля</param>
|
||||||
/// <returns>true - границы заданы, false - проверка не пройдена, нельзя разместить объект в этих размерах</returns>
|
/// <returns>true - границы заданы, false - проверка не пройдена, нельзя разместить объект в этих размерах</returns>
|
||||||
public bool SetPictureSize(int width, int height)
|
public bool SetPictureSize(int width, int height)
|
||||||
|
{
|
||||||
|
if (width > _drawningLinerWidth && height > _drawningLinerHeight)
|
||||||
{
|
{
|
||||||
_pictureWidth = width;
|
_pictureWidth = width;
|
||||||
_pictureHeight = height;
|
_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 true;
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Установка позиции
|
/// Установка позиции
|
||||||
@ -84,16 +104,22 @@ public class DrawningLiner
|
|||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
if (x < 0 || y < 0)
|
|
||||||
{
|
{
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
_startPosX = x;
|
_startPosX = x;
|
||||||
_startPosY = y;
|
_startPosY = y;
|
||||||
|
|
||||||
|
if (_startPosX.Value + _drawningLinerWidth > _pictureWidth)
|
||||||
|
{
|
||||||
|
_startPosX = _pictureWidth - _drawningLinerWidth;
|
||||||
|
}
|
||||||
|
if (_startPosY.Value + _drawningLinerHeight > _pictureHeight)
|
||||||
|
{
|
||||||
|
_startPosY = _pictureHeight - _drawningLinerHeight;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
/// <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);
|
||||||
}
|
}
|
||||||
|
|
||||||
// труба
|
// труба
|
||||||
|
2
ProjectLiner/ProjectLiner/FormLiner.Designer.cs
generated
2
ProjectLiner/ProjectLiner/FormLiner.Designer.cs
generated
@ -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);
|
||||||
|
Loading…
Reference in New Issue
Block a user