PIBD-11_Lovtsov.A.A_LabaWork01_Simple #3
@ -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),
|
||||
|
38
PrLaba1/PrLaba1/FormDiselLoko.Designer.cs
generated
38
PrLaba1/PrLaba1/FormDiselLoko.Designer.cs
generated
@ -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();
|
||||
|
@ -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>
|
Loading…
x
Reference in New Issue
Block a user