PIBD-11_Lovtsov.A.A_LabaWork01_Simple #3

Open
a.lovtsov wants to merge 7 commits from Laba1 into main
3 changed files with 81 additions and 44 deletions
Showing only changes of commit e8c5001028 - Show all commits

View File

@ -36,13 +36,28 @@ public class DrawningDiselLoko
///<summary>
///Ширина прорисовки тепловоза
///</summary>
private readonly int _drawingCarWidth = 110;
private readonly int _drawingCarWidth = 140;
///<summary>
///Высота прорисовки тепловоза
///</summary>
private readonly int _drawingCarHeight = 60;
///<summary>
///Высота прорисовки тепловоза с трубой
///</summary>
private int _drawingCarHeightWithKit = 0;
///<summary>
///Высота прорисовки тепловоза с трубой
///</summary>
private int _WheelHeight = 25;
///<summary>
///ширина вставки сбоку
///</summary>
private int _InsertWidth = 10;
///<summary>
///Иницилизация
///</summary>
@ -72,8 +87,13 @@ public class DrawningDiselLoko
{
// TODO проверка, что объект "влезает" в размеры поля
// если влезает, сохраняем границы и корректируем позицию объекта, если она была уже установлена
if (width <= _startPosX || height <= _startPosY) { return false; }
_pictureWidth = width;
_pictureHeight = height;
return true;
}
/// <summary>
@ -104,10 +124,9 @@ public class DrawningDiselLoko
y = _pictureHeight.Value - _drawingCarHeight - 1;
}
// TODO если при установке объекта в эти координаты, он будет "выходить" за границы формы
// то надо изменить координаты, чтобы он оставался в этих границах
_startPosX = x;
_startPosY = y;
}
/// <summary>
@ -126,28 +145,32 @@ public class DrawningDiselLoko
{
//влево
case Direction.Left:
if (_startPosX.Value - DiselLoko.Step - 10 > 0)
if (_startPosX.Value - DiselLoko.Step > 0)
{
_startPosX -= (int)DiselLoko.Step;
}
return true;
//вверх
case Direction.Up:
if (_startPosY.Value - DiselLoko.Step > 0)
if (_startPosY.Value - _drawingCarHeightWithKit >= 0 && DiselLoko.IsTube)
{
_startPosY -= (int)DiselLoko.Step;
_startPosY = _startPosY - (int)DiselLoko.Step;
}else if(_startPosY.Value - DiselLoko.Step > 0 && !DiselLoko.IsTube)
{
_startPosY = _startPosY - (int)DiselLoko.Step;
}
return true;
// вправо
case Direction.Right:
if (_startPosX.Value + DiselLoko.Step +40 < _pictureWidth.Value - _drawingCarWidth)
if (_startPosX.Value < _pictureWidth.Value - _drawingCarWidth-_InsertWidth)
{
_startPosX += (int)DiselLoko.Step;
}
return true;
//вниз
case Direction.Down:
if (_startPosY.Value + DiselLoko.Step + 10< _pictureHeight.Value - _drawingCarHeight)
if (_startPosY.Value + _WheelHeight + _drawingCarHeight < _pictureHeight.Value )
{
_startPosY += (int)DiselLoko.Step;
}
@ -180,8 +203,8 @@ public class DrawningDiselLoko
//корпус
Point[] trainBody = {
new Point(_startPosX.Value, _startPosY.Value),
new Point(_startPosX.Value + _drawingCarWidth+30, _startPosY.Value),
new Point(_startPosX.Value + _drawingCarWidth+30, _startPosY.Value + _drawingCarHeight),
new Point(_startPosX.Value + _drawingCarWidth, _startPosY.Value),
new Point(_startPosX.Value + _drawingCarWidth, _startPosY.Value + _drawingCarHeight),
new Point(_startPosX.Value-10, _startPosY.Value + _drawingCarHeight),
new Point(_startPosX.Value-10, _startPosY.Value + _drawingCarHeight/2)
@ -237,22 +260,22 @@ public class DrawningDiselLoko
for (int i = 0; i < 4; i++)
{
Brush brBlack = new SolidBrush(Color.Black);
g.FillEllipse(brBlack, _startPosX.Value + (i * 40), _startPosY.Value + 60, 20, 20);
g.FillEllipse(brBlack, _startPosX.Value + (i * 35), _startPosY.Value + _drawingCarHeight, 20, 20);
}
// Черные вставки внизу корпуса (полигон)
Point[] bottomBlack = {
new Point(_startPosX.Value+10, _startPosY.Value + _drawingCarHeight),
new Point(_startPosX.Value + _drawingCarWidth-55, _startPosY.Value + _drawingCarHeight),
new Point(_startPosX.Value + _drawingCarWidth-55, _startPosY.Value + _drawingCarHeight + 10),
new Point(_startPosX.Value + _drawingCarWidth, _startPosY.Value + _drawingCarHeight),
new Point(_startPosX.Value + _drawingCarWidth, _startPosY.Value + _drawingCarHeight + 10),
new Point(_startPosX.Value+10, _startPosY.Value + _drawingCarHeight + 10)
};
Point[] bottomBlack2 = {
/*Point[] bottomBlack2 = {
new Point(_startPosX.Value+_drawingCarWidth+25, _startPosY.Value + _drawingCarHeight),
new Point(_startPosX.Value + _drawingCarWidth-25, _startPosY.Value + _drawingCarHeight),
new Point(_startPosX.Value + _drawingCarWidth-25, _startPosY.Value + _drawingCarHeight + 10),
new Point(_startPosX.Value+_drawingCarWidth+25, _startPosY.Value + _drawingCarHeight + 10)
};
};*/
Point[] bottomBlack3 = {
new Point(_startPosX.Value, _startPosY.Value + _drawingCarHeight),
new Point(_startPosX.Value+7, _startPosY.Value + _drawingCarHeight),
@ -266,17 +289,18 @@ public class DrawningDiselLoko
new Point(_startPosX.Value+_drawingCarWidth+45, _startPosY.Value + _drawingCarHeight + 10)
};
g.FillPolygon(blackBrush, bottomBlack);
g.FillPolygon(blackBrush, bottomBlack2);
//g.FillPolygon(blackBrush, bottomBlack2);
g.FillPolygon(blackBrush, bottomBlack3);
g.FillPolygon(blackBrush, bottomBlack4);
//g.FillPolygon(blackBrush, bottomBlack4);
// Черные вставки сбоку корпуса (полигон)
g.FillRectangle(blackBrush, _startPosX.Value + _drawingCarWidth+30, _startPosY.Value + 10, 10, _drawingCarHeight - 20);
g.FillRectangle(blackBrush, _startPosX.Value + _drawingCarWidth, _startPosY.Value + 10, 10, _drawingCarHeight - 20);
// труба
if (DiselLoko.IsTube)
{
// **Труба (полигон)**
_drawingCarHeightWithKit = 20;
Point[] chimney = {
new Point(_startPosX.Value + 20, _startPosY.Value - 20),
new Point(_startPosX.Value + 35, _startPosY.Value - 20),

View File

@ -42,16 +42,18 @@
//
pictureBoxDiselLoko.Dock = DockStyle.Fill;
pictureBoxDiselLoko.Location = new Point(0, 0);
pictureBoxDiselLoko.Margin = new Padding(5, 6, 5, 6);
pictureBoxDiselLoko.Name = "pictureBoxDiselLoko";
pictureBoxDiselLoko.Size = new Size(800, 450);
pictureBoxDiselLoko.Size = new Size(1371, 900);
pictureBoxDiselLoko.TabIndex = 0;
pictureBoxDiselLoko.TabStop = false;
//
// create
//
create.Location = new Point(12, 415);
create.Location = new Point(21, 830);
create.Margin = new Padding(5, 6, 5, 6);
create.Name = "create";
create.Size = new Size(75, 23);
create.Size = new Size(129, 46);
create.TabIndex = 1;
create.Text = "Создать";
create.UseVisualStyleBackColor = true;
@ -60,9 +62,11 @@
// buttonUp
//
buttonUp.BackgroundImage = (Image)resources.GetObject("buttonUp.BackgroundImage");
buttonUp.Location = new Point(721, 372);
buttonUp.BackgroundImageLayout = ImageLayout.Stretch;
buttonUp.Location = new Point(1236, 736);
buttonUp.Margin = new Padding(5, 6, 5, 6);
buttonUp.Name = "buttonUp";
buttonUp.Size = new Size(35, 35);
buttonUp.Size = new Size(60, 70);
buttonUp.TabIndex = 2;
buttonUp.UseVisualStyleBackColor = true;
buttonUp.Click += ButtonMove_Click;
@ -70,9 +74,11 @@
// buttonDown
//
buttonDown.BackgroundImage = (Image)resources.GetObject("buttonDown.BackgroundImage");
buttonDown.Location = new Point(721, 403);
buttonDown.BackgroundImageLayout = ImageLayout.Stretch;
buttonDown.Location = new Point(1236, 806);
buttonDown.Margin = new Padding(5, 6, 5, 6);
buttonDown.Name = "buttonDown";
buttonDown.Size = new Size(35, 35);
buttonDown.Size = new Size(60, 70);
buttonDown.TabIndex = 3;
buttonDown.UseVisualStyleBackColor = true;
buttonDown.Click += ButtonMove_Click;
@ -80,9 +86,11 @@
// buttonRight
//
buttonRight.BackgroundImage = (Image)resources.GetObject("buttonRight.BackgroundImage");
buttonRight.Location = new Point(753, 403);
buttonRight.BackgroundImageLayout = ImageLayout.Stretch;
buttonRight.Location = new Point(1291, 806);
buttonRight.Margin = new Padding(5, 6, 5, 6);
buttonRight.Name = "buttonRight";
buttonRight.Size = new Size(35, 35);
buttonRight.Size = new Size(60, 70);
buttonRight.TabIndex = 4;
buttonRight.UseVisualStyleBackColor = true;
buttonRight.Click += ButtonMove_Click;
@ -90,24 +98,28 @@
// ButtonLeft
//
ButtonLeft.BackgroundImage = (Image)resources.GetObject("ButtonLeft.BackgroundImage");
ButtonLeft.Location = new Point(689, 403);
ButtonLeft.BackgroundImageLayout = ImageLayout.Stretch;
ButtonLeft.Location = new Point(1181, 806);
ButtonLeft.Margin = new Padding(5, 6, 5, 6);
ButtonLeft.Name = "ButtonLeft";
ButtonLeft.Size = new Size(35, 35);
ButtonLeft.Size = new Size(60, 70);
ButtonLeft.TabIndex = 5;
ButtonLeft.TextImageRelation = TextImageRelation.TextBeforeImage;
ButtonLeft.UseVisualStyleBackColor = true;
ButtonLeft.Click += ButtonMove_Click;
//
// FormDiselLoko
//
AutoScaleDimensions = new SizeF(7F, 15F);
AutoScaleDimensions = new SizeF(12F, 30F);
AutoScaleMode = AutoScaleMode.Font;
ClientSize = new Size(800, 450);
ClientSize = new Size(1371, 900);
Controls.Add(ButtonLeft);
Controls.Add(buttonRight);
Controls.Add(buttonDown);
Controls.Add(buttonUp);
Controls.Add(create);
Controls.Add(pictureBoxDiselLoko);
Margin = new Padding(5, 6, 5, 6);
Name = "FormDiselLoko";
Text = "Тепловоз";
((System.ComponentModel.ISupportInitialize)pictureBoxDiselLoko).EndInit();

View File

@ -121,34 +121,35 @@
<data name="buttonUp.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAIAAAC0Ujn1AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wAAADsABataJCQAAAIdJREFUSEvtzFsOgCAMRFH3v2kkcjUFC6U+MCacP+jMLOE1c7rgmF42PDr0RtNu
wpelK8ekwKHJDjGW49Z0cTriXGckmKkgVPHRNANNRDXVG1ULac3d6YjCiX6g1I1abuw0cSfKQvlF0I++
8Nh0xMRu4HRE0ImyoHwdKDUR1czpwpwu/HE6hBWbVcKS8nHq8gAAAABJRU5ErkJggg==
vwAADr8BOAVTJAAAAKxJREFUSEvdzEsOwjAUQ9Hsf9MgBRU5N+/jQjvpmSV+9njdZvDjOo+fHhN/c+7p
Z/fUunWnu/56f8TViUeR/oirB95tmgvurXi96uISr1dVzKUIOyLNuJFgTaQZN3JsHuKA7Q77U/J7EvtT
8Muehyv7NBs27Fw5va9v7z9wCu+f17kSTn+xHWFHlJmBHVFmBnZEmRnYEWVmYEeUmYEdUWYGdkSZGdgR
ZWZgR7wBm1XCkmZMrk8AAAAASUVORK5CYII=
</value>
</data>
<data name="buttonDown.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAIAAAC0Ujn1AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wAAADsABataJCQAAAIVJREFUSEvtzFsKgDAMRFH3v+k6yBXsI22iUkF6PpOZ2ZJtcyDasqYLa7rwm2lK
QZQvyhPBW5g4TZwWgnH0T69NU75onIS4G7Xc9Gmh5EChYj6E6gjpytNpoi29nzBgIGT4blqYqfC2jRPC
WI6f7eY0jy5XSJg8cBrx5iS0K4Fo1JrOpLQD0c/CkunHhukAAAAASUVORK5CYII=
vwAADr8BOAVTJAAAAKZJREFUSEvtzEEOwzAMA8H8/9MtECAFs5ZoKrl2bjZFHp/eEWBH2CzAjrBZgB1h
swA7wmYBdoTNAuwImwXYETYLsCNsFmBHFBnbGa6s02xMcIrvFziF95t17uD9eJor5fSDdfZPze8Q+6f6
d7TO5qUN8nXWLm0QTrMjXLZd5/XdLrZ4fbeJzTrvFvuLbp1Hi/1FOc2LSnSEdWaN9O63zt/e4HTqPw1f
0c/CkmqWjm8AAAAASUVORK5CYII=
</value>
</data>
<data name="buttonRight.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAIAAAC0Ujn1AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wAAADsABataJCQAAAIZJREFUSEvtzUkOgCAMQFHuf2lM4JMgMnSAuOHtbMs3xGNuuvFfOhR8a8zeUC2Y
iinSGTsBdTrjYopTAwJj3JmR6eHCidgbOz96FRZbkCyY7kI1YbQL1YTRFiQLpn70Kiw8KH2wNiPTw4UB
gTHLb1mvqNPsBBRppmKLB7ZoZnwmcdONY+kYH/QlwpJxqZGzAAAAAElFTkSuQmCC
vwAADr8BOAVTJAAAAIRJREFUSEvtzEEKwCAMBVHvf+kWFEuY1BjTuCj4lvoz5dqm8CHPScMkXTp+OFg3
TzdWtw6Qbjgas6asCpy+4Y0fSwoPVrEncBrDasVRGMOJaV3n90c/TMtuZhrdnDSTHXer2BM49WNJsRaM
ddwNWDsmK47GrGk42kwOYtEmeOZx0rAxfQP0JcKSXR+eRgAAAABJRU5ErkJggg==
</value>
</data>
<data name="ButtonLeft.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAIAAAC0Ujn1AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wAAADsABataJCQAAAJNJREFUSEvt0EEOgCAMBVHuf2k0MBiRr0CLiQvfjraZBSG+5k9ffC8dEh43ptM5
emCqTKSJ1dgpo2lKDdZKP03DgIDChRmZBmsPSics/OgVTJcgmTBahWrCaBWqBdMlSJ6w8KNXY+dETOHC
jMw97gwIPOJU4UIZSmfEauyUiXRGsmCqTKd3VHufaUkP+tMXr6Vj3AB4/8KSzy1jIwAAAABJRU5ErkJg
gg==
vwAADr8BOAVTJAAAAIVJREFUSEvtzEkOwCAMBEH+/+lEwiIaGmT2nKgjYzo8xwQ+7HPTMJkOEV9zjblk
0Q9n4W2AqOGR8DbFZMI74W2GsX4sCZ6OYi/h3QQmt0TNqS7S3Bb9lN5cR3pnneGIR3NYFTwdxV6BH/qx
VMM/gqfC24DViEfC26oOprXOIdeYV9w0HEy/eP/CkookNBkAAAAASUVORK5CYII=
</value>
</data>
</root>