From 567f5c540249618f79d2c746df6e60bc82564263 Mon Sep 17 00:00:00 2001 From: Timourka Date: Tue, 26 Sep 2023 22:11:44 +0400 Subject: [PATCH 1/5] =?UTF-8?q?=D0=9F=D0=98=D0=B1=D0=B4-21=20=D0=9A=D1=83?= =?UTF-8?q?=D0=B2=D1=88=D0=B8=D0=BD=D0=BE=D0=B2=20=D0=A2=D0=B8=D0=BC=D1=83?= =?UTF-8?q?=D1=80=20=D0=BB=D0=B0=D0=B1=D0=B0=201?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- laba1Loco/Direction.java | 21 ++ laba1Loco/DrawingLoco.java | 327 +++++++++++++++++++++++++++ laba1Loco/EntityLoco.java | 69 ++++++ laba1Loco/Form1.java | 124 ++++++++++ laba1Loco/Main.java | 7 + laba1Loco/NumWheel.java | 17 ++ laba1Loco/images/arowDown340x259.png | Bin 0 -> 546 bytes laba1Loco/images/arowL340x259.png | Bin 0 -> 518 bytes laba1Loco/images/arowR340x259.png | Bin 0 -> 513 bytes laba1Loco/images/arowUp340x259.png | Bin 0 -> 541 bytes 10 files changed, 565 insertions(+) create mode 100644 laba1Loco/Direction.java create mode 100644 laba1Loco/DrawingLoco.java create mode 100644 laba1Loco/EntityLoco.java create mode 100644 laba1Loco/Form1.java create mode 100644 laba1Loco/Main.java create mode 100644 laba1Loco/NumWheel.java create mode 100644 laba1Loco/images/arowDown340x259.png create mode 100644 laba1Loco/images/arowL340x259.png create mode 100644 laba1Loco/images/arowR340x259.png create mode 100644 laba1Loco/images/arowUp340x259.png diff --git a/laba1Loco/Direction.java b/laba1Loco/Direction.java new file mode 100644 index 0000000..f6f3a67 --- /dev/null +++ b/laba1Loco/Direction.java @@ -0,0 +1,21 @@ +package laba1Loco; + +public enum Direction + { + /// + /// Вверх + /// + Up, + /// + /// Вниз + /// + Down, + /// + /// Влево + /// + Left, + /// + /// Вправо + /// + Right + } \ No newline at end of file diff --git a/laba1Loco/DrawingLoco.java b/laba1Loco/DrawingLoco.java new file mode 100644 index 0000000..22c71c9 --- /dev/null +++ b/laba1Loco/DrawingLoco.java @@ -0,0 +1,327 @@ +package laba1Loco; + +import java.awt.*; +import java.util.*; +import javax.swing.*; +import javax.swing.Timer; +import java.awt.event.*; + +public class DrawingLoco{ + + public class WheelDrawing{ + private NumWheel numWheel; + + public NumWheel getSomeProperty() { + return numWheel; + } + + public void setNumWheel(int kwheel){ + switch(kwheel){ + case 2: + numWheel = NumWheel.TwoWheel; + break; + case 3: + numWheel = NumWheel.ThreeWheel; + break; + case 4: + numWheel = NumWheel.FourWheel; + break; + default: + numWheel = NumWheel.TwoWheel; + System.out.println("ВСё плохо, колво колёс почему то не соответтвовало критериям, количество колёс:" + Integer.toString(kwheel) + "но вывели мы как будто их было 2"); + break; + } + } + + void Draw(int _startPosX, int _startPosY, boolean fuelTank, Color color, Graphics2D g2d){ + + g2d.setColor(color); + + g2d.fillOval(_startPosX + 3, _startPosY + 34, 8, 8); + g2d.fillOval(_startPosX + 4, _startPosY + 35, 6, 6); + g2d.fillOval(_startPosX + 26, _startPosY + 34, 8, 8); + g2d.fillOval(_startPosX + 27, _startPosY + 35, 6, 6); + g2d.fillOval(_startPosX + 46, _startPosY + 34, 8, 8); + g2d.fillOval(_startPosX + 47, _startPosY + 35, 6, 6); + g2d.fillOval(_startPosX + 72, _startPosY + 34, 8, 8); + g2d.fillOval(_startPosX + 73, _startPosY + 35, 6, 6); + if (numWheel == NumWheel.TwoWheel){ + g2d.fillOval(_startPosX + 14, _startPosY + 34, 8, 8); + g2d.fillOval(_startPosX + 15, _startPosY + 35, 6, 6); + g2d.fillOval(_startPosX + 59, _startPosY + 34, 8, 8); + g2d.fillOval(_startPosX + 60, _startPosY + 35, 6, 6); + } + if (numWheel == NumWheel.FourWheel){ + g2d.fillOval(_startPosX + 11, _startPosY + 34, 8, 8); + g2d.fillOval(_startPosX + 12, _startPosY + 35, 6, 6); + g2d.fillOval(_startPosX + 18, _startPosY + 34, 8, 8); + g2d.fillOval(_startPosX + 19, _startPosY + 35, 6, 6); + g2d.fillOval(_startPosX + 55, _startPosY + 34, 8, 8); + g2d.fillOval(_startPosX + 56, _startPosY + 35, 6, 6); + g2d.fillOval(_startPosX + 63, _startPosY + 34, 8, 8); + g2d.fillOval(_startPosX + 64, _startPosY + 35, 6, 6); + } + + if (fuelTank){ + g2d.fillOval(_startPosX + 3+85, _startPosY + 34, 8, 8); + g2d.fillOval(_startPosX + 4+85, _startPosY + 35, 6, 6); + g2d.fillOval(_startPosX + 26+85, _startPosY + 34, 8, 8); + g2d.fillOval(_startPosX + 27+85, _startPosY + 35, 6, 6); + g2d.fillOval(_startPosX + 46+85, _startPosY + 34, 8, 8); + g2d.fillOval(_startPosX + 47+85, _startPosY + 35, 6, 6); + g2d.fillOval(_startPosX + 72+85, _startPosY + 34, 8, 8); + g2d.fillOval(_startPosX + 73+85, _startPosY + 35, 6, 6); + if (numWheel == NumWheel.TwoWheel){ + g2d.fillOval(_startPosX + 14+85, _startPosY + 34, 8, 8); + g2d.fillOval(_startPosX + 15+85, _startPosY + 35, 6, 6); + g2d.fillOval(_startPosX + 59+85, _startPosY + 34, 8, 8); + g2d.fillOval(_startPosX + 60+85, _startPosY + 35, 6, 6); + } + if (numWheel == NumWheel.FourWheel){ + g2d.fillOval(_startPosX + 11+85, _startPosY + 34, 8, 8); + g2d.fillOval(_startPosX + 12+85, _startPosY + 35, 6, 6); + g2d.fillOval(_startPosX + 18+85, _startPosY + 34, 8, 8); + g2d.fillOval(_startPosX + 19+85, _startPosY + 35, 6, 6); + g2d.fillOval(_startPosX + 55+85, _startPosY + 34, 8, 8); + g2d.fillOval(_startPosX + 56+85, _startPosY + 35, 6, 6); + g2d.fillOval(_startPosX + 63+85, _startPosY + 34, 8, 8); + g2d.fillOval(_startPosX + 64+85, _startPosY + 35, 6, 6); + } + } + } + } + + private WheelDrawing wheelDrawing; + + /// + /// Класс-сущность + /// + public EntityLoco _EntityLoco; + /// + /// Ширина окна + /// + private int _pictureWidth; + /// + /// Высота окна + /// + private int _pictureHeight; + /// + /// Левая координата прорисовки локомотива + /// + private int _startPosX; + /// + /// Верхняя кооридната прорисовки локомотива + /// + private int _startPosY; + /// + /// Ширина прорисовки локомотива + /// + private int _locoWidth = 83; + /// + /// Высота прорисовки локомотива + /// + private int _locoHeight = 41; + /// + /// Инициализация свойств + /// + /// Скорость + /// Вес + /// Цвет кузова + /// Дополнительный цвет + /// Признак наличия трубы + /// Признак наличия бака + /// Признак наличия паровозной полосы + /// Ширина картинки + /// Высота картинки + /// true - объект создан, false - проверка не пройдена, нельзя создать объект в этих размерах + public boolean Init(int speed, double weight, Color bodyColor, Color additionalColor, boolean tube, boolean fuelTank, boolean locoLine, int numWheel, int width, int height) + { + _pictureWidth = width; + _pictureHeight = height; + if (_pictureHeight < _locoHeight || _pictureWidth < _locoWidth) + return false; + _EntityLoco = new EntityLoco(); + _EntityLoco.Init(speed, weight, bodyColor, additionalColor, tube, fuelTank, locoLine, numWheel); + if (fuelTank) + _locoWidth = 169; + wheelDrawing = new WheelDrawing(); + wheelDrawing.setNumWheel(numWheel); + return true; + } + /// + /// Установка позиции + /// + /// Координата X + /// Координата Y + public void SetPosition(int x, int y) + { + _startPosX = Math.min(x, _pictureWidth-_locoWidth); + _startPosY = Math.min(y, _pictureHeight-_locoHeight); + } + /// + /// Изменение направления перемещения + /// + /// Направление + public void MoveTransport(Direction direction) + { + if (_EntityLoco == null){ + return; + } + switch (direction) + { + //влево + case Left: + if (_startPosX - _EntityLoco.Step > 0) + { + _startPosX -= (int)_EntityLoco.Step; + } + break; + //вверх + case Up: + if (_startPosY - _EntityLoco.Step > 0) + { + _startPosY -= (int)_EntityLoco.Step; + } + break; + // вправо + case Right: + if (_startPosX + _locoWidth + _EntityLoco.Step < _pictureWidth) + { + _startPosX += (int)_EntityLoco.Step; + } + break; + //вниз + case Down: + if (_startPosY + _locoHeight + _EntityLoco.Step < _pictureHeight) + { + _startPosY += (int)_EntityLoco.Step; + } + break; + } + } + /// + /// Прорисовка объекта + /// + /// + public void DrawTransport(Graphics2D g2d) + { + + if (_EntityLoco == null) + { + return; + } + + // body + g2d.setColor(_EntityLoco.BodyColor); + g2d.drawPolyline(new int[]{ + _startPosX + 8, _startPosX + 79, _startPosX + 79, _startPosX + 4, _startPosX + 4, _startPosX + 8, + }, new int[]{ + _startPosY+10, _startPosY+10, _startPosY+32, _startPosY+32, _startPosY+20, _startPosY+10 + }, 6); + g2d.drawPolyline(new int[]{ + _startPosX + 4, _startPosX + 29, _startPosX + 29, _startPosX + 37, _startPosX + 37, _startPosX + 79, _startPosX + 37, _startPosX + 37, _startPosX + 29, _startPosX + 29, + }, new int[]{ + _startPosY+21, _startPosY+21, _startPosY+14, _startPosY+14, _startPosY+21, _startPosY+21, _startPosY+21, _startPosY+29, _startPosY+29, _startPosY+21 + }, 10); + + // trucks + g2d.fillPolygon(new int[]{ +_startPosX + 0,_startPosX + 5,_startPosX + 32,_startPosX + 36, + }, new int[]{ +_startPosY+37,_startPosY+33,_startPosY+33,_startPosY+37 + }, 4); + g2d.fillPolygon(new int[]{ +_startPosX + 44,_startPosX + 49,_startPosX + 76,_startPosX + 80, + }, new int[]{ +_startPosY+37,_startPosY+33,_startPosY+33,_startPosY+37 + }, 4); + + //back + g2d.fillPolygon(new int[]{ +_startPosX + 79,_startPosX + 82,_startPosX + 82,_startPosX + 79, + }, new int[]{ +_startPosY+12,_startPosY+12,_startPosY+30,_startPosY+30 + }, 4); + + + //windows + g2d.setColor(Color.BLUE); + g2d.drawRect(_startPosX + 10, _startPosY + 12, 6, 7); + g2d.drawRect(_startPosX + 19, _startPosY + 12, 6, 7); + g2d.drawRect(_startPosX + 72, _startPosY + 12, 6, 7); + + //wheels + wheelDrawing.Draw(_startPosX, _startPosY, _EntityLoco.FuelTank, _EntityLoco.BodyColor, g2d); + + g2d.setColor(_EntityLoco.AdditionalColor); + if (_EntityLoco.Tube) + { + g2d.drawPolyline(new int[] { +_startPosX + 40,_startPosX + 40,_startPosX + 45,_startPosX + 41,_startPosX + 41,_startPosX + 44,_startPosX + 44,_startPosX + 45,_startPosX + 45, + },new int[] { +_startPosY+9,_startPosY+3,_startPosY+3,_startPosY+3,_startPosY,_startPosY,_startPosY+3,_startPosY+3,_startPosY+9, + },9); + } + if (_EntityLoco.LocoLine) + { + g2d.drawPolyline(new int[] { + _startPosX + 60,_startPosX + 38, + },new int[] { + _startPosY+10,_startPosY+32 + },2); + g2d.drawPolyline(new int[] { + _startPosX + 65,_startPosX + 43, + },new int[] { + _startPosY+10,_startPosY+32 + },2); + g2d.drawPolyline(new int[] { + _startPosX + 70,_startPosX + 48, + },new int[] { + _startPosY+10,_startPosY+32 + },2); + } + if (_EntityLoco.FuelTank) + { + // body + g2d.setColor(_EntityLoco.BodyColor); + g2d.drawPolyline(new int[]{ + _startPosX + 89, _startPosX + 164, _startPosX + 164, _startPosX + 89, _startPosX + 89, + }, new int[]{ + _startPosY+10, _startPosY+10, _startPosY+32, _startPosY+32, _startPosY+10 + }, 5); + g2d.drawPolyline(new int[]{ + _startPosX + 89, _startPosX + 164, + }, new int[]{ + _startPosY+21, _startPosY+21, + }, 2); + + // trucks + g2d.fillPolygon(new int[]{ +_startPosX + 0+85,_startPosX + 5+85,_startPosX + 32+85,_startPosX + 36+85, + }, new int[]{ +_startPosY+37,_startPosY+33,_startPosY+33,_startPosY+37 + }, 4); + g2d.fillPolygon(new int[]{ +_startPosX + 44+85,_startPosX + 49+85,_startPosX + 76+85,_startPosX + 80+85, + }, new int[]{ +_startPosY+37,_startPosY+33,_startPosY+33,_startPosY+37 + }, 4); + + //back + g2d.fillPolygon(new int[]{ +_startPosX + 79+85,_startPosX + 82+85,_startPosX + 82+85,_startPosX + 79+85, + }, new int[]{ +_startPosY+12,_startPosY+12,_startPosY+30,_startPosY+30 + }, 4); + + + //front + g2d.fillPolygon(new int[]{ +_startPosX + 86,_startPosX + 89,_startPosX + 89,_startPosX + 86, + }, new int[]{ +_startPosY+12,_startPosY+12,_startPosY+30,_startPosY+30 + }, 4); + + } + } +} \ No newline at end of file diff --git a/laba1Loco/EntityLoco.java b/laba1Loco/EntityLoco.java new file mode 100644 index 0000000..fa6f254 --- /dev/null +++ b/laba1Loco/EntityLoco.java @@ -0,0 +1,69 @@ +package laba1Loco; + +import java.awt.*; +import java.util.*; +import javax.swing.*; +import javax.swing.Timer; +import java.awt.event.*; + +public class EntityLoco{ + /// + /// Скорость + /// + public int Speed; + /// + /// Вес + /// + public double Weight; + /// + /// Основной цвет + /// + public Color BodyColor; + /// + /// Дополнительный цвет (для опциональных элементов) + /// + public Color AdditionalColor; + /// + /// Признак (опция) наличия трубы + /// + public boolean Tube; + /// + /// Признак (опция) наличия бака + /// + public boolean FuelTank; + /// + /// Признак (опция) наличия паровозной полосы + /// + public boolean LocoLine; + /// + /// Шаг перемещения автомобиля + /// + public double Step; + /// + /// количество колёс [2;4] + /// + public int numWheel; + /// + /// Инициализация полей объекта-класса спортивного автомобиля + /// + /// Скорость + /// Вес автомобиля + /// Основной цвет + /// Дополнительный цвет + /// Признак наличия трубы + /// Признак наличия бака + /// Признак паровозной гоночной полосы + public void Init(int speed, double weight, Color bodyColor, Color + additionalColor, boolean tube, boolean fuelTank, boolean locoLine, int _numWheel) + { + numWheel = _numWheel; + Speed = speed; + Weight = weight; + BodyColor = bodyColor; + AdditionalColor = additionalColor; + Tube = tube; + FuelTank = fuelTank; + LocoLine = locoLine; + Step = (double)Speed * 100 / Weight; + } +} \ No newline at end of file diff --git a/laba1Loco/Form1.java b/laba1Loco/Form1.java new file mode 100644 index 0000000..988f589 --- /dev/null +++ b/laba1Loco/Form1.java @@ -0,0 +1,124 @@ +package laba1Loco; + +import java.awt.*; +import java.util.*; +import javax.swing.*; +import javax.swing.Timer; +import java.awt.event.*; + +public class Form1{ + private DrawingLoco _drawingLoco; + Canvas canv; + + public void Draw(){ + canv.repaint(); + } + + public Form1(){ + JFrame w=new JFrame ("Loco"); + JButton buttonCreate = new JButton("create"); + JButton up = new JButton(); + up.setBorderPainted(false); + up.setFocusPainted(false); + up.setContentAreaFilled(false); + up.setName("up"); + up.setIcon(new ImageIcon("images/arowUp340x259.png")); + JButton down = new JButton(); + down.setBorderPainted(false); + down.setFocusPainted(false); + down.setContentAreaFilled(false); + down.setName("down"); + down.setIcon(new ImageIcon("images/arowDown340x259.png")); + JButton left = new JButton(); + left.setBorderPainted(false); + left.setFocusPainted(false); + left.setContentAreaFilled(false); + left.setName("left"); + left.setIcon(new ImageIcon("images/arowL340x259.png")); + JButton right = new JButton(); + right.setBorderPainted(false); + right.setFocusPainted(false); + right.setContentAreaFilled(false); + right.setName("right"); + right.setIcon(new ImageIcon("images/arowR340x259.png")); + + buttonCreate.addActionListener( + new ActionListener() { + public void actionPerformed(ActionEvent e){ + System.out.println(e.getActionCommand()); + Random random = new Random(); + _drawingLoco = new DrawingLoco(); + _drawingLoco.Init(random.nextInt(100, 300), random.nextInt(1000, 3000), + new Color(random.nextInt(0, 256), random.nextInt(0, 256), random.nextInt(0, 256)), + new Color(random.nextInt(0, 256), random.nextInt(0, 256), random.nextInt(0, 256)), + random.nextInt(0, 2) == 1, random.nextInt(0, 2) == 1, random.nextInt(0, 2) == 1, + random.nextInt(2, 5), 1000, 560); + _drawingLoco.SetPosition(random.nextInt(10, 100), random.nextInt(10, 100)); + canv._drawingLoco = _drawingLoco; + Draw(); + } + } + ); + ActionListener actioListener = new ActionListener() { + public void actionPerformed(ActionEvent e){ + System.out.println(((JButton)(e.getSource())).getName()); + if (_drawingLoco == null) + { + return; + } + switch(((JButton)(e.getSource())).getName()){ + case "up": + _drawingLoco.MoveTransport(Direction.Up); + break; + case "down": + _drawingLoco.MoveTransport(Direction.Down); + break; + case "left": + _drawingLoco.MoveTransport(Direction.Left); + break; + case "right": + _drawingLoco.MoveTransport(Direction.Right); + break; + } + Draw(); + } + }; + up.addActionListener(actioListener); + down.addActionListener(actioListener); + left.addActionListener(actioListener); + right.addActionListener(actioListener); + + w.setSize (1000, 600); + w.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); + w.setLayout(null); + canv = new Canvas(); + canv.setBounds(0, 0, 1000, 600); + buttonCreate.setBounds(2, 540, 100, 20); + up.setBounds(900, 480, 40, 40); + down.setBounds(900, 520, 40, 40); + left.setBounds(860, 520, 40, 40); + right.setBounds(940, 520, 40, 40); + w.add(canv); + w.add(buttonCreate); + w.add(up); + w.add(down); + w.add(left); + w.add(right); + w.setVisible (true); + } +} + +class Canvas extends JComponent{ + public DrawingLoco _drawingLoco; + public Canvas(){ + } + public void paintComponent (Graphics g){ + if (_drawingLoco == null){ + return; + } + super.paintComponents (g) ; + Graphics2D g2d = (Graphics2D)g; + _drawingLoco.DrawTransport(g2d); + super.repaint(); + } +} \ No newline at end of file diff --git a/laba1Loco/Main.java b/laba1Loco/Main.java new file mode 100644 index 0000000..21414f2 --- /dev/null +++ b/laba1Loco/Main.java @@ -0,0 +1,7 @@ +package laba1Loco; + +public class Main{ + public static void main(String[] args) { + Form1 form1 = new Form1(); + } +} \ No newline at end of file diff --git a/laba1Loco/NumWheel.java b/laba1Loco/NumWheel.java new file mode 100644 index 0000000..fff8072 --- /dev/null +++ b/laba1Loco/NumWheel.java @@ -0,0 +1,17 @@ +package laba1Loco; + +public enum NumWheel + { + /// + /// 2 колеса + /// + TwoWheel, + /// + /// 3 колеса + /// + ThreeWheel, + /// + /// 4 колеса + /// + FourWheel + } \ No newline at end of file diff --git a/laba1Loco/images/arowDown340x259.png b/laba1Loco/images/arowDown340x259.png new file mode 100644 index 0000000000000000000000000000000000000000..1aef4dc4902c9d700c84472a0d898c2d889b1bff GIT binary patch literal 546 zcmV+-0^R+IP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!~g&e!~vBn4jTXf0k=s+K~z{r?U*}K z!$1r`O)kJpDw;F_8g4<)8K`osRGfjHThQ=nXs9y72_S-1qR7%}rByF#%50XnJmdu759=Scz?0o5)lPqO5s~3p6ibUwazg2;TENKzINXo!I~Te=QgWS@q0cO zdL+#;sL5@R#+`7iRg$wKXuX2Ox5C3`X)uK2;`s#W{$>Pg%+D94C1ZWx!bp%m1z!z| z@MtMfl@<<&mOU|onk2nJ51yX@YKpa!xa1~{7`3wJ>D3;tCI?izdO7e8l&)$dO9Bj!Si5}1#!APom$QNB{r;07*qoM6N<$g6)v%*8l(j literal 0 HcmV?d00001 diff --git a/laba1Loco/images/arowL340x259.png b/laba1Loco/images/arowL340x259.png new file mode 100644 index 0000000000000000000000000000000000000000..a2e6f8bbe983e0d111ffd9ff4cd4c4dee275e233 GIT binary patch literal 518 zcmV+h0{Q)kP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!~g&e!~vBn4jTXf0h>ugK~z{r?bbU^ z#6S$j@qr5)(Zb8GNp`k+J1duNpOP1q#+1@A!{t{xcTg(q< z!tTNMRN8Qd`S)h~Tfongi}@$AkTa;EcJI%5<;y+6(!`=B=>kUIPAxNV4IDC^L5bTv zz2w#O-sO2-#hk;T2?AEbA$jesdx9;Pj8D=MO}`6R!<{`|=T%CtR}XpR2O=Pwx0vGq zE8&p5j;K08iKAK&KFQv+iDQB)umnR9Q!4!d5~%{MQ+xZm%d3=5k8bm-oQ7-y3D-L{ zj+(nUPU-$5Uo7MBVW5W7U<(uijH&<;A$x)IQ*6co#&L*V)7~>=|FRIUc~5p=<5osB z197hrKLgqsSv;LUN+`Xiy=Un6JjK+e{}1v;r#X^_LqkAhon{G8OX5%yh)PJLL8EY} z3y3%pm7p9~+H|CDAZj6HULbI&8;B$lX;8w^CZ2{qNwA^ZR8A`5*7AlX$kV1NTYZAO zh|PPle_5DX1L*>y5;6*JK7(3xE+Z!!3fxETTfFc7fxc4u0Z7gPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!~g&e!~vBn4jTXf0hUQbK~z{r?Ug-F z#4r#>4HrP#iiU=ThFj2c1}ct4#TmBe7Bu`cG*n2O0QO7lXf!($k28}HA)aKdH(F_* zU+m=Qdrw+1$N6)${0n*s75qHA>_#MEheQ(Fyg%pJbV3Sh)go%nz6ZUMiyRV-8?rdT7mBNmVdPjzUGPlA@p{R}-+H)zl=-f)=^Aulqbp>HOp_&t$AMCkaxK z18z@Kdicm+dNf%}&1S(-IRL=|69tm2RI^C>AJh<{gCbm$7D(?-iBqC2@-99QZ(tcg z;Z|Gm3*yh|pa|Dm_u$_<#bf;Ha}Zc0YiQK~mjj|8&?LvGEx=lhq6)TB79>fwR-=SJ zX1ENm)*=VGf|z(K*0ux{0~R?j2zn@slO(wqu*!kZTg+voYAtdgwBQ)6VueNC#Z%?L z?1COS5F)5ac;!II9xM!}IY6usDmVv=91;&J7fk5~fSW7Gxh?vk00000NkvXXu0mjf DO?%Py literal 0 HcmV?d00001 diff --git a/laba1Loco/images/arowUp340x259.png b/laba1Loco/images/arowUp340x259.png new file mode 100644 index 0000000000000000000000000000000000000000..3d8743b00a1f9b37bebd129eab40f08749b02c44 GIT binary patch literal 541 zcmV+&0^Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!~g&e!~vBn4jTXf0kTO%K~z{r?U*}K z!!Qtr4HsZ06%7rKhFj2c1}ct4l{2L07BoB>8mi220>~PzNBrKEcD0I!0lpcJY$vk5 z{43c>4nB4aKbWq9+mnm5Hw>%S$FvvYFtuTFIRcMc>5?GJtR9}mme^jNk8L!`aDtK? z!N<`gyObE^m>!ZLK^*w({(9Pa(JY9iMJYaxrr0Eiay257Zb4}ft)$XKv?iY{A<``00000NkvXXu0mjf6Bg`~ literal 0 HcmV?d00001 -- 2.25.1 From caf0310dffaf6cf9be1ec980f582dcb1a5b28c6e Mon Sep 17 00:00:00 2001 From: Timourka Date: Tue, 26 Sep 2023 22:12:32 +0400 Subject: [PATCH 2/5] deleted: laba1Loco/Direction.java deleted: laba1Loco/DrawingLoco.java deleted: laba1Loco/EntityLoco.java deleted: laba1Loco/Form1.java deleted: laba1Loco/Main.java deleted: laba1Loco/NumWheel.java deleted: laba1Loco/images/arowDown340x259.png deleted: laba1Loco/images/arowL340x259.png deleted: laba1Loco/images/arowR340x259.png deleted: laba1Loco/images/arowUp340x259.png --- laba1Loco/Direction.java | 21 -- laba1Loco/DrawingLoco.java | 327 --------------------------- laba1Loco/EntityLoco.java | 69 ------ laba1Loco/Form1.java | 124 ---------- laba1Loco/Main.java | 7 - laba1Loco/NumWheel.java | 17 -- laba1Loco/images/arowDown340x259.png | Bin 546 -> 0 bytes laba1Loco/images/arowL340x259.png | Bin 518 -> 0 bytes laba1Loco/images/arowR340x259.png | Bin 513 -> 0 bytes laba1Loco/images/arowUp340x259.png | Bin 541 -> 0 bytes 10 files changed, 565 deletions(-) delete mode 100644 laba1Loco/Direction.java delete mode 100644 laba1Loco/DrawingLoco.java delete mode 100644 laba1Loco/EntityLoco.java delete mode 100644 laba1Loco/Form1.java delete mode 100644 laba1Loco/Main.java delete mode 100644 laba1Loco/NumWheel.java delete mode 100644 laba1Loco/images/arowDown340x259.png delete mode 100644 laba1Loco/images/arowL340x259.png delete mode 100644 laba1Loco/images/arowR340x259.png delete mode 100644 laba1Loco/images/arowUp340x259.png diff --git a/laba1Loco/Direction.java b/laba1Loco/Direction.java deleted file mode 100644 index f6f3a67..0000000 --- a/laba1Loco/Direction.java +++ /dev/null @@ -1,21 +0,0 @@ -package laba1Loco; - -public enum Direction - { - /// - /// Вверх - /// - Up, - /// - /// Вниз - /// - Down, - /// - /// Влево - /// - Left, - /// - /// Вправо - /// - Right - } \ No newline at end of file diff --git a/laba1Loco/DrawingLoco.java b/laba1Loco/DrawingLoco.java deleted file mode 100644 index 22c71c9..0000000 --- a/laba1Loco/DrawingLoco.java +++ /dev/null @@ -1,327 +0,0 @@ -package laba1Loco; - -import java.awt.*; -import java.util.*; -import javax.swing.*; -import javax.swing.Timer; -import java.awt.event.*; - -public class DrawingLoco{ - - public class WheelDrawing{ - private NumWheel numWheel; - - public NumWheel getSomeProperty() { - return numWheel; - } - - public void setNumWheel(int kwheel){ - switch(kwheel){ - case 2: - numWheel = NumWheel.TwoWheel; - break; - case 3: - numWheel = NumWheel.ThreeWheel; - break; - case 4: - numWheel = NumWheel.FourWheel; - break; - default: - numWheel = NumWheel.TwoWheel; - System.out.println("ВСё плохо, колво колёс почему то не соответтвовало критериям, количество колёс:" + Integer.toString(kwheel) + "но вывели мы как будто их было 2"); - break; - } - } - - void Draw(int _startPosX, int _startPosY, boolean fuelTank, Color color, Graphics2D g2d){ - - g2d.setColor(color); - - g2d.fillOval(_startPosX + 3, _startPosY + 34, 8, 8); - g2d.fillOval(_startPosX + 4, _startPosY + 35, 6, 6); - g2d.fillOval(_startPosX + 26, _startPosY + 34, 8, 8); - g2d.fillOval(_startPosX + 27, _startPosY + 35, 6, 6); - g2d.fillOval(_startPosX + 46, _startPosY + 34, 8, 8); - g2d.fillOval(_startPosX + 47, _startPosY + 35, 6, 6); - g2d.fillOval(_startPosX + 72, _startPosY + 34, 8, 8); - g2d.fillOval(_startPosX + 73, _startPosY + 35, 6, 6); - if (numWheel == NumWheel.TwoWheel){ - g2d.fillOval(_startPosX + 14, _startPosY + 34, 8, 8); - g2d.fillOval(_startPosX + 15, _startPosY + 35, 6, 6); - g2d.fillOval(_startPosX + 59, _startPosY + 34, 8, 8); - g2d.fillOval(_startPosX + 60, _startPosY + 35, 6, 6); - } - if (numWheel == NumWheel.FourWheel){ - g2d.fillOval(_startPosX + 11, _startPosY + 34, 8, 8); - g2d.fillOval(_startPosX + 12, _startPosY + 35, 6, 6); - g2d.fillOval(_startPosX + 18, _startPosY + 34, 8, 8); - g2d.fillOval(_startPosX + 19, _startPosY + 35, 6, 6); - g2d.fillOval(_startPosX + 55, _startPosY + 34, 8, 8); - g2d.fillOval(_startPosX + 56, _startPosY + 35, 6, 6); - g2d.fillOval(_startPosX + 63, _startPosY + 34, 8, 8); - g2d.fillOval(_startPosX + 64, _startPosY + 35, 6, 6); - } - - if (fuelTank){ - g2d.fillOval(_startPosX + 3+85, _startPosY + 34, 8, 8); - g2d.fillOval(_startPosX + 4+85, _startPosY + 35, 6, 6); - g2d.fillOval(_startPosX + 26+85, _startPosY + 34, 8, 8); - g2d.fillOval(_startPosX + 27+85, _startPosY + 35, 6, 6); - g2d.fillOval(_startPosX + 46+85, _startPosY + 34, 8, 8); - g2d.fillOval(_startPosX + 47+85, _startPosY + 35, 6, 6); - g2d.fillOval(_startPosX + 72+85, _startPosY + 34, 8, 8); - g2d.fillOval(_startPosX + 73+85, _startPosY + 35, 6, 6); - if (numWheel == NumWheel.TwoWheel){ - g2d.fillOval(_startPosX + 14+85, _startPosY + 34, 8, 8); - g2d.fillOval(_startPosX + 15+85, _startPosY + 35, 6, 6); - g2d.fillOval(_startPosX + 59+85, _startPosY + 34, 8, 8); - g2d.fillOval(_startPosX + 60+85, _startPosY + 35, 6, 6); - } - if (numWheel == NumWheel.FourWheel){ - g2d.fillOval(_startPosX + 11+85, _startPosY + 34, 8, 8); - g2d.fillOval(_startPosX + 12+85, _startPosY + 35, 6, 6); - g2d.fillOval(_startPosX + 18+85, _startPosY + 34, 8, 8); - g2d.fillOval(_startPosX + 19+85, _startPosY + 35, 6, 6); - g2d.fillOval(_startPosX + 55+85, _startPosY + 34, 8, 8); - g2d.fillOval(_startPosX + 56+85, _startPosY + 35, 6, 6); - g2d.fillOval(_startPosX + 63+85, _startPosY + 34, 8, 8); - g2d.fillOval(_startPosX + 64+85, _startPosY + 35, 6, 6); - } - } - } - } - - private WheelDrawing wheelDrawing; - - /// - /// Класс-сущность - /// - public EntityLoco _EntityLoco; - /// - /// Ширина окна - /// - private int _pictureWidth; - /// - /// Высота окна - /// - private int _pictureHeight; - /// - /// Левая координата прорисовки локомотива - /// - private int _startPosX; - /// - /// Верхняя кооридната прорисовки локомотива - /// - private int _startPosY; - /// - /// Ширина прорисовки локомотива - /// - private int _locoWidth = 83; - /// - /// Высота прорисовки локомотива - /// - private int _locoHeight = 41; - /// - /// Инициализация свойств - /// - /// Скорость - /// Вес - /// Цвет кузова - /// Дополнительный цвет - /// Признак наличия трубы - /// Признак наличия бака - /// Признак наличия паровозной полосы - /// Ширина картинки - /// Высота картинки - /// true - объект создан, false - проверка не пройдена, нельзя создать объект в этих размерах - public boolean Init(int speed, double weight, Color bodyColor, Color additionalColor, boolean tube, boolean fuelTank, boolean locoLine, int numWheel, int width, int height) - { - _pictureWidth = width; - _pictureHeight = height; - if (_pictureHeight < _locoHeight || _pictureWidth < _locoWidth) - return false; - _EntityLoco = new EntityLoco(); - _EntityLoco.Init(speed, weight, bodyColor, additionalColor, tube, fuelTank, locoLine, numWheel); - if (fuelTank) - _locoWidth = 169; - wheelDrawing = new WheelDrawing(); - wheelDrawing.setNumWheel(numWheel); - return true; - } - /// - /// Установка позиции - /// - /// Координата X - /// Координата Y - public void SetPosition(int x, int y) - { - _startPosX = Math.min(x, _pictureWidth-_locoWidth); - _startPosY = Math.min(y, _pictureHeight-_locoHeight); - } - /// - /// Изменение направления перемещения - /// - /// Направление - public void MoveTransport(Direction direction) - { - if (_EntityLoco == null){ - return; - } - switch (direction) - { - //влево - case Left: - if (_startPosX - _EntityLoco.Step > 0) - { - _startPosX -= (int)_EntityLoco.Step; - } - break; - //вверх - case Up: - if (_startPosY - _EntityLoco.Step > 0) - { - _startPosY -= (int)_EntityLoco.Step; - } - break; - // вправо - case Right: - if (_startPosX + _locoWidth + _EntityLoco.Step < _pictureWidth) - { - _startPosX += (int)_EntityLoco.Step; - } - break; - //вниз - case Down: - if (_startPosY + _locoHeight + _EntityLoco.Step < _pictureHeight) - { - _startPosY += (int)_EntityLoco.Step; - } - break; - } - } - /// - /// Прорисовка объекта - /// - /// - public void DrawTransport(Graphics2D g2d) - { - - if (_EntityLoco == null) - { - return; - } - - // body - g2d.setColor(_EntityLoco.BodyColor); - g2d.drawPolyline(new int[]{ - _startPosX + 8, _startPosX + 79, _startPosX + 79, _startPosX + 4, _startPosX + 4, _startPosX + 8, - }, new int[]{ - _startPosY+10, _startPosY+10, _startPosY+32, _startPosY+32, _startPosY+20, _startPosY+10 - }, 6); - g2d.drawPolyline(new int[]{ - _startPosX + 4, _startPosX + 29, _startPosX + 29, _startPosX + 37, _startPosX + 37, _startPosX + 79, _startPosX + 37, _startPosX + 37, _startPosX + 29, _startPosX + 29, - }, new int[]{ - _startPosY+21, _startPosY+21, _startPosY+14, _startPosY+14, _startPosY+21, _startPosY+21, _startPosY+21, _startPosY+29, _startPosY+29, _startPosY+21 - }, 10); - - // trucks - g2d.fillPolygon(new int[]{ -_startPosX + 0,_startPosX + 5,_startPosX + 32,_startPosX + 36, - }, new int[]{ -_startPosY+37,_startPosY+33,_startPosY+33,_startPosY+37 - }, 4); - g2d.fillPolygon(new int[]{ -_startPosX + 44,_startPosX + 49,_startPosX + 76,_startPosX + 80, - }, new int[]{ -_startPosY+37,_startPosY+33,_startPosY+33,_startPosY+37 - }, 4); - - //back - g2d.fillPolygon(new int[]{ -_startPosX + 79,_startPosX + 82,_startPosX + 82,_startPosX + 79, - }, new int[]{ -_startPosY+12,_startPosY+12,_startPosY+30,_startPosY+30 - }, 4); - - - //windows - g2d.setColor(Color.BLUE); - g2d.drawRect(_startPosX + 10, _startPosY + 12, 6, 7); - g2d.drawRect(_startPosX + 19, _startPosY + 12, 6, 7); - g2d.drawRect(_startPosX + 72, _startPosY + 12, 6, 7); - - //wheels - wheelDrawing.Draw(_startPosX, _startPosY, _EntityLoco.FuelTank, _EntityLoco.BodyColor, g2d); - - g2d.setColor(_EntityLoco.AdditionalColor); - if (_EntityLoco.Tube) - { - g2d.drawPolyline(new int[] { -_startPosX + 40,_startPosX + 40,_startPosX + 45,_startPosX + 41,_startPosX + 41,_startPosX + 44,_startPosX + 44,_startPosX + 45,_startPosX + 45, - },new int[] { -_startPosY+9,_startPosY+3,_startPosY+3,_startPosY+3,_startPosY,_startPosY,_startPosY+3,_startPosY+3,_startPosY+9, - },9); - } - if (_EntityLoco.LocoLine) - { - g2d.drawPolyline(new int[] { - _startPosX + 60,_startPosX + 38, - },new int[] { - _startPosY+10,_startPosY+32 - },2); - g2d.drawPolyline(new int[] { - _startPosX + 65,_startPosX + 43, - },new int[] { - _startPosY+10,_startPosY+32 - },2); - g2d.drawPolyline(new int[] { - _startPosX + 70,_startPosX + 48, - },new int[] { - _startPosY+10,_startPosY+32 - },2); - } - if (_EntityLoco.FuelTank) - { - // body - g2d.setColor(_EntityLoco.BodyColor); - g2d.drawPolyline(new int[]{ - _startPosX + 89, _startPosX + 164, _startPosX + 164, _startPosX + 89, _startPosX + 89, - }, new int[]{ - _startPosY+10, _startPosY+10, _startPosY+32, _startPosY+32, _startPosY+10 - }, 5); - g2d.drawPolyline(new int[]{ - _startPosX + 89, _startPosX + 164, - }, new int[]{ - _startPosY+21, _startPosY+21, - }, 2); - - // trucks - g2d.fillPolygon(new int[]{ -_startPosX + 0+85,_startPosX + 5+85,_startPosX + 32+85,_startPosX + 36+85, - }, new int[]{ -_startPosY+37,_startPosY+33,_startPosY+33,_startPosY+37 - }, 4); - g2d.fillPolygon(new int[]{ -_startPosX + 44+85,_startPosX + 49+85,_startPosX + 76+85,_startPosX + 80+85, - }, new int[]{ -_startPosY+37,_startPosY+33,_startPosY+33,_startPosY+37 - }, 4); - - //back - g2d.fillPolygon(new int[]{ -_startPosX + 79+85,_startPosX + 82+85,_startPosX + 82+85,_startPosX + 79+85, - }, new int[]{ -_startPosY+12,_startPosY+12,_startPosY+30,_startPosY+30 - }, 4); - - - //front - g2d.fillPolygon(new int[]{ -_startPosX + 86,_startPosX + 89,_startPosX + 89,_startPosX + 86, - }, new int[]{ -_startPosY+12,_startPosY+12,_startPosY+30,_startPosY+30 - }, 4); - - } - } -} \ No newline at end of file diff --git a/laba1Loco/EntityLoco.java b/laba1Loco/EntityLoco.java deleted file mode 100644 index fa6f254..0000000 --- a/laba1Loco/EntityLoco.java +++ /dev/null @@ -1,69 +0,0 @@ -package laba1Loco; - -import java.awt.*; -import java.util.*; -import javax.swing.*; -import javax.swing.Timer; -import java.awt.event.*; - -public class EntityLoco{ - /// - /// Скорость - /// - public int Speed; - /// - /// Вес - /// - public double Weight; - /// - /// Основной цвет - /// - public Color BodyColor; - /// - /// Дополнительный цвет (для опциональных элементов) - /// - public Color AdditionalColor; - /// - /// Признак (опция) наличия трубы - /// - public boolean Tube; - /// - /// Признак (опция) наличия бака - /// - public boolean FuelTank; - /// - /// Признак (опция) наличия паровозной полосы - /// - public boolean LocoLine; - /// - /// Шаг перемещения автомобиля - /// - public double Step; - /// - /// количество колёс [2;4] - /// - public int numWheel; - /// - /// Инициализация полей объекта-класса спортивного автомобиля - /// - /// Скорость - /// Вес автомобиля - /// Основной цвет - /// Дополнительный цвет - /// Признак наличия трубы - /// Признак наличия бака - /// Признак паровозной гоночной полосы - public void Init(int speed, double weight, Color bodyColor, Color - additionalColor, boolean tube, boolean fuelTank, boolean locoLine, int _numWheel) - { - numWheel = _numWheel; - Speed = speed; - Weight = weight; - BodyColor = bodyColor; - AdditionalColor = additionalColor; - Tube = tube; - FuelTank = fuelTank; - LocoLine = locoLine; - Step = (double)Speed * 100 / Weight; - } -} \ No newline at end of file diff --git a/laba1Loco/Form1.java b/laba1Loco/Form1.java deleted file mode 100644 index 988f589..0000000 --- a/laba1Loco/Form1.java +++ /dev/null @@ -1,124 +0,0 @@ -package laba1Loco; - -import java.awt.*; -import java.util.*; -import javax.swing.*; -import javax.swing.Timer; -import java.awt.event.*; - -public class Form1{ - private DrawingLoco _drawingLoco; - Canvas canv; - - public void Draw(){ - canv.repaint(); - } - - public Form1(){ - JFrame w=new JFrame ("Loco"); - JButton buttonCreate = new JButton("create"); - JButton up = new JButton(); - up.setBorderPainted(false); - up.setFocusPainted(false); - up.setContentAreaFilled(false); - up.setName("up"); - up.setIcon(new ImageIcon("images/arowUp340x259.png")); - JButton down = new JButton(); - down.setBorderPainted(false); - down.setFocusPainted(false); - down.setContentAreaFilled(false); - down.setName("down"); - down.setIcon(new ImageIcon("images/arowDown340x259.png")); - JButton left = new JButton(); - left.setBorderPainted(false); - left.setFocusPainted(false); - left.setContentAreaFilled(false); - left.setName("left"); - left.setIcon(new ImageIcon("images/arowL340x259.png")); - JButton right = new JButton(); - right.setBorderPainted(false); - right.setFocusPainted(false); - right.setContentAreaFilled(false); - right.setName("right"); - right.setIcon(new ImageIcon("images/arowR340x259.png")); - - buttonCreate.addActionListener( - new ActionListener() { - public void actionPerformed(ActionEvent e){ - System.out.println(e.getActionCommand()); - Random random = new Random(); - _drawingLoco = new DrawingLoco(); - _drawingLoco.Init(random.nextInt(100, 300), random.nextInt(1000, 3000), - new Color(random.nextInt(0, 256), random.nextInt(0, 256), random.nextInt(0, 256)), - new Color(random.nextInt(0, 256), random.nextInt(0, 256), random.nextInt(0, 256)), - random.nextInt(0, 2) == 1, random.nextInt(0, 2) == 1, random.nextInt(0, 2) == 1, - random.nextInt(2, 5), 1000, 560); - _drawingLoco.SetPosition(random.nextInt(10, 100), random.nextInt(10, 100)); - canv._drawingLoco = _drawingLoco; - Draw(); - } - } - ); - ActionListener actioListener = new ActionListener() { - public void actionPerformed(ActionEvent e){ - System.out.println(((JButton)(e.getSource())).getName()); - if (_drawingLoco == null) - { - return; - } - switch(((JButton)(e.getSource())).getName()){ - case "up": - _drawingLoco.MoveTransport(Direction.Up); - break; - case "down": - _drawingLoco.MoveTransport(Direction.Down); - break; - case "left": - _drawingLoco.MoveTransport(Direction.Left); - break; - case "right": - _drawingLoco.MoveTransport(Direction.Right); - break; - } - Draw(); - } - }; - up.addActionListener(actioListener); - down.addActionListener(actioListener); - left.addActionListener(actioListener); - right.addActionListener(actioListener); - - w.setSize (1000, 600); - w.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); - w.setLayout(null); - canv = new Canvas(); - canv.setBounds(0, 0, 1000, 600); - buttonCreate.setBounds(2, 540, 100, 20); - up.setBounds(900, 480, 40, 40); - down.setBounds(900, 520, 40, 40); - left.setBounds(860, 520, 40, 40); - right.setBounds(940, 520, 40, 40); - w.add(canv); - w.add(buttonCreate); - w.add(up); - w.add(down); - w.add(left); - w.add(right); - w.setVisible (true); - } -} - -class Canvas extends JComponent{ - public DrawingLoco _drawingLoco; - public Canvas(){ - } - public void paintComponent (Graphics g){ - if (_drawingLoco == null){ - return; - } - super.paintComponents (g) ; - Graphics2D g2d = (Graphics2D)g; - _drawingLoco.DrawTransport(g2d); - super.repaint(); - } -} \ No newline at end of file diff --git a/laba1Loco/Main.java b/laba1Loco/Main.java deleted file mode 100644 index 21414f2..0000000 --- a/laba1Loco/Main.java +++ /dev/null @@ -1,7 +0,0 @@ -package laba1Loco; - -public class Main{ - public static void main(String[] args) { - Form1 form1 = new Form1(); - } -} \ No newline at end of file diff --git a/laba1Loco/NumWheel.java b/laba1Loco/NumWheel.java deleted file mode 100644 index fff8072..0000000 --- a/laba1Loco/NumWheel.java +++ /dev/null @@ -1,17 +0,0 @@ -package laba1Loco; - -public enum NumWheel - { - /// - /// 2 колеса - /// - TwoWheel, - /// - /// 3 колеса - /// - ThreeWheel, - /// - /// 4 колеса - /// - FourWheel - } \ No newline at end of file diff --git a/laba1Loco/images/arowDown340x259.png b/laba1Loco/images/arowDown340x259.png deleted file mode 100644 index 1aef4dc4902c9d700c84472a0d898c2d889b1bff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 546 zcmV+-0^R+IP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!~g&e!~vBn4jTXf0k=s+K~z{r?U*}K z!$1r`O)kJpDw;F_8g4<)8K`osRGfjHThQ=nXs9y72_S-1qR7%}rByF#%50XnJmdu759=Scz?0o5)lPqO5s~3p6ibUwazg2;TENKzINXo!I~Te=QgWS@q0cO zdL+#;sL5@R#+`7iRg$wKXuX2Ox5C3`X)uK2;`s#W{$>Pg%+D94C1ZWx!bp%m1z!z| z@MtMfl@<<&mOU|onk2nJ51yX@YKpa!xa1~{7`3wJ>D3;tCI?izdO7e8l&)$dO9Bj!Si5}1#!APom$QNB{r;07*qoM6N<$g6)v%*8l(j diff --git a/laba1Loco/images/arowL340x259.png b/laba1Loco/images/arowL340x259.png deleted file mode 100644 index a2e6f8bbe983e0d111ffd9ff4cd4c4dee275e233..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 518 zcmV+h0{Q)kP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!~g&e!~vBn4jTXf0h>ugK~z{r?bbU^ z#6S$j@qr5)(Zb8GNp`k+J1duNpOP1q#+1@A!{t{xcTg(q< z!tTNMRN8Qd`S)h~Tfongi}@$AkTa;EcJI%5<;y+6(!`=B=>kUIPAxNV4IDC^L5bTv zz2w#O-sO2-#hk;T2?AEbA$jesdx9;Pj8D=MO}`6R!<{`|=T%CtR}XpR2O=Pwx0vGq zE8&p5j;K08iKAK&KFQv+iDQB)umnR9Q!4!d5~%{MQ+xZm%d3=5k8bm-oQ7-y3D-L{ zj+(nUPU-$5Uo7MBVW5W7U<(uijH&<;A$x)IQ*6co#&L*V)7~>=|FRIUc~5p=<5osB z197hrKLgqsSv;LUN+`Xiy=Un6JjK+e{}1v;r#X^_LqkAhon{G8OX5%yh)PJLL8EY} z3y3%pm7p9~+H|CDAZj6HULbI&8;B$lX;8w^CZ2{qNwA^ZR8A`5*7AlX$kV1NTYZAO zh|PPle_5DX1L*>y5;6*JK7(3xE+Z!!3fxETTfFc7fxc4u0Z7gPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!~g&e!~vBn4jTXf0hUQbK~z{r?Ug-F z#4r#>4HrP#iiU=ThFj2c1}ct4#TmBe7Bu`cG*n2O0QO7lXf!($k28}HA)aKdH(F_* zU+m=Qdrw+1$N6)${0n*s75qHA>_#MEheQ(Fyg%pJbV3Sh)go%nz6ZUMiyRV-8?rdT7mBNmVdPjzUGPlA@p{R}-+H)zl=-f)=^Aulqbp>HOp_&t$AMCkaxK z18z@Kdicm+dNf%}&1S(-IRL=|69tm2RI^C>AJh<{gCbm$7D(?-iBqC2@-99QZ(tcg z;Z|Gm3*yh|pa|Dm_u$_<#bf;Ha}Zc0YiQK~mjj|8&?LvGEx=lhq6)TB79>fwR-=SJ zX1ENm)*=VGf|z(K*0ux{0~R?j2zn@slO(wqu*!kZTg+voYAtdgwBQ)6VueNC#Z%?L z?1COS5F)5ac;!II9xM!}IY6usDmVv=91;&J7fk5~fSW7Gxh?vk00000NkvXXu0mjf DO?%Py diff --git a/laba1Loco/images/arowUp340x259.png b/laba1Loco/images/arowUp340x259.png deleted file mode 100644 index 3d8743b00a1f9b37bebd129eab40f08749b02c44..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 541 zcmV+&0^Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!~g&e!~vBn4jTXf0kTO%K~z{r?U*}K z!!Qtr4HsZ06%7rKhFj2c1}ct4l{2L07BoB>8mi220>~PzNBrKEcD0I!0lpcJY$vk5 z{43c>4nB4aKbWq9+mnm5Hw>%S$FvvYFtuTFIRcMc>5?GJtR9}mme^jNk8L!`aDtK? z!N<`gyObE^m>!ZLK^*w({(9Pa(JY9iMJYaxrr0Eiay257Zb4}ft)$XKv?iY{A<``00000NkvXXu0mjf6Bg`~ -- 2.25.1 From d6152b45fd9ebc661fa5442905703b38bc7d0aef Mon Sep 17 00:00:00 2001 From: Timourka Date: Tue, 26 Sep 2023 22:13:53 +0400 Subject: [PATCH 3/5] =?UTF-8?q?=D0=9F=D0=98=D0=B1=D0=B4-21=20=D0=9A=D1=83?= =?UTF-8?q?=D0=B2=D1=88=D0=B8=D0=BD=D0=BE=D0=B2=20=D0=A2=D0=B8=D0=BC=D1=83?= =?UTF-8?q?=D1=80=201=20=D0=BB=D0=B0=D0=B1=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- laba1Loco/Direction.java | 21 ++ laba1Loco/DrawingLoco.java | 327 +++++++++++++++++++++++++++ laba1Loco/EntityLoco.java | 69 ++++++ laba1Loco/Form1.java | 124 ++++++++++ laba1Loco/Main.java | 7 + laba1Loco/NumWheel.java | 17 ++ laba1Loco/images/arowDown340x259.png | Bin 0 -> 546 bytes laba1Loco/images/arowL340x259.png | Bin 0 -> 518 bytes laba1Loco/images/arowR340x259.png | Bin 0 -> 513 bytes laba1Loco/images/arowUp340x259.png | Bin 0 -> 541 bytes 10 files changed, 565 insertions(+) create mode 100644 laba1Loco/Direction.java create mode 100644 laba1Loco/DrawingLoco.java create mode 100644 laba1Loco/EntityLoco.java create mode 100644 laba1Loco/Form1.java create mode 100644 laba1Loco/Main.java create mode 100644 laba1Loco/NumWheel.java create mode 100644 laba1Loco/images/arowDown340x259.png create mode 100644 laba1Loco/images/arowL340x259.png create mode 100644 laba1Loco/images/arowR340x259.png create mode 100644 laba1Loco/images/arowUp340x259.png diff --git a/laba1Loco/Direction.java b/laba1Loco/Direction.java new file mode 100644 index 0000000..f6f3a67 --- /dev/null +++ b/laba1Loco/Direction.java @@ -0,0 +1,21 @@ +package laba1Loco; + +public enum Direction + { + /// + /// Вверх + /// + Up, + /// + /// Вниз + /// + Down, + /// + /// Влево + /// + Left, + /// + /// Вправо + /// + Right + } \ No newline at end of file diff --git a/laba1Loco/DrawingLoco.java b/laba1Loco/DrawingLoco.java new file mode 100644 index 0000000..22c71c9 --- /dev/null +++ b/laba1Loco/DrawingLoco.java @@ -0,0 +1,327 @@ +package laba1Loco; + +import java.awt.*; +import java.util.*; +import javax.swing.*; +import javax.swing.Timer; +import java.awt.event.*; + +public class DrawingLoco{ + + public class WheelDrawing{ + private NumWheel numWheel; + + public NumWheel getSomeProperty() { + return numWheel; + } + + public void setNumWheel(int kwheel){ + switch(kwheel){ + case 2: + numWheel = NumWheel.TwoWheel; + break; + case 3: + numWheel = NumWheel.ThreeWheel; + break; + case 4: + numWheel = NumWheel.FourWheel; + break; + default: + numWheel = NumWheel.TwoWheel; + System.out.println("ВСё плохо, колво колёс почему то не соответтвовало критериям, количество колёс:" + Integer.toString(kwheel) + "но вывели мы как будто их было 2"); + break; + } + } + + void Draw(int _startPosX, int _startPosY, boolean fuelTank, Color color, Graphics2D g2d){ + + g2d.setColor(color); + + g2d.fillOval(_startPosX + 3, _startPosY + 34, 8, 8); + g2d.fillOval(_startPosX + 4, _startPosY + 35, 6, 6); + g2d.fillOval(_startPosX + 26, _startPosY + 34, 8, 8); + g2d.fillOval(_startPosX + 27, _startPosY + 35, 6, 6); + g2d.fillOval(_startPosX + 46, _startPosY + 34, 8, 8); + g2d.fillOval(_startPosX + 47, _startPosY + 35, 6, 6); + g2d.fillOval(_startPosX + 72, _startPosY + 34, 8, 8); + g2d.fillOval(_startPosX + 73, _startPosY + 35, 6, 6); + if (numWheel == NumWheel.TwoWheel){ + g2d.fillOval(_startPosX + 14, _startPosY + 34, 8, 8); + g2d.fillOval(_startPosX + 15, _startPosY + 35, 6, 6); + g2d.fillOval(_startPosX + 59, _startPosY + 34, 8, 8); + g2d.fillOval(_startPosX + 60, _startPosY + 35, 6, 6); + } + if (numWheel == NumWheel.FourWheel){ + g2d.fillOval(_startPosX + 11, _startPosY + 34, 8, 8); + g2d.fillOval(_startPosX + 12, _startPosY + 35, 6, 6); + g2d.fillOval(_startPosX + 18, _startPosY + 34, 8, 8); + g2d.fillOval(_startPosX + 19, _startPosY + 35, 6, 6); + g2d.fillOval(_startPosX + 55, _startPosY + 34, 8, 8); + g2d.fillOval(_startPosX + 56, _startPosY + 35, 6, 6); + g2d.fillOval(_startPosX + 63, _startPosY + 34, 8, 8); + g2d.fillOval(_startPosX + 64, _startPosY + 35, 6, 6); + } + + if (fuelTank){ + g2d.fillOval(_startPosX + 3+85, _startPosY + 34, 8, 8); + g2d.fillOval(_startPosX + 4+85, _startPosY + 35, 6, 6); + g2d.fillOval(_startPosX + 26+85, _startPosY + 34, 8, 8); + g2d.fillOval(_startPosX + 27+85, _startPosY + 35, 6, 6); + g2d.fillOval(_startPosX + 46+85, _startPosY + 34, 8, 8); + g2d.fillOval(_startPosX + 47+85, _startPosY + 35, 6, 6); + g2d.fillOval(_startPosX + 72+85, _startPosY + 34, 8, 8); + g2d.fillOval(_startPosX + 73+85, _startPosY + 35, 6, 6); + if (numWheel == NumWheel.TwoWheel){ + g2d.fillOval(_startPosX + 14+85, _startPosY + 34, 8, 8); + g2d.fillOval(_startPosX + 15+85, _startPosY + 35, 6, 6); + g2d.fillOval(_startPosX + 59+85, _startPosY + 34, 8, 8); + g2d.fillOval(_startPosX + 60+85, _startPosY + 35, 6, 6); + } + if (numWheel == NumWheel.FourWheel){ + g2d.fillOval(_startPosX + 11+85, _startPosY + 34, 8, 8); + g2d.fillOval(_startPosX + 12+85, _startPosY + 35, 6, 6); + g2d.fillOval(_startPosX + 18+85, _startPosY + 34, 8, 8); + g2d.fillOval(_startPosX + 19+85, _startPosY + 35, 6, 6); + g2d.fillOval(_startPosX + 55+85, _startPosY + 34, 8, 8); + g2d.fillOval(_startPosX + 56+85, _startPosY + 35, 6, 6); + g2d.fillOval(_startPosX + 63+85, _startPosY + 34, 8, 8); + g2d.fillOval(_startPosX + 64+85, _startPosY + 35, 6, 6); + } + } + } + } + + private WheelDrawing wheelDrawing; + + /// + /// Класс-сущность + /// + public EntityLoco _EntityLoco; + /// + /// Ширина окна + /// + private int _pictureWidth; + /// + /// Высота окна + /// + private int _pictureHeight; + /// + /// Левая координата прорисовки локомотива + /// + private int _startPosX; + /// + /// Верхняя кооридната прорисовки локомотива + /// + private int _startPosY; + /// + /// Ширина прорисовки локомотива + /// + private int _locoWidth = 83; + /// + /// Высота прорисовки локомотива + /// + private int _locoHeight = 41; + /// + /// Инициализация свойств + /// + /// Скорость + /// Вес + /// Цвет кузова + /// Дополнительный цвет + /// Признак наличия трубы + /// Признак наличия бака + /// Признак наличия паровозной полосы + /// Ширина картинки + /// Высота картинки + /// true - объект создан, false - проверка не пройдена, нельзя создать объект в этих размерах + public boolean Init(int speed, double weight, Color bodyColor, Color additionalColor, boolean tube, boolean fuelTank, boolean locoLine, int numWheel, int width, int height) + { + _pictureWidth = width; + _pictureHeight = height; + if (_pictureHeight < _locoHeight || _pictureWidth < _locoWidth) + return false; + _EntityLoco = new EntityLoco(); + _EntityLoco.Init(speed, weight, bodyColor, additionalColor, tube, fuelTank, locoLine, numWheel); + if (fuelTank) + _locoWidth = 169; + wheelDrawing = new WheelDrawing(); + wheelDrawing.setNumWheel(numWheel); + return true; + } + /// + /// Установка позиции + /// + /// Координата X + /// Координата Y + public void SetPosition(int x, int y) + { + _startPosX = Math.min(x, _pictureWidth-_locoWidth); + _startPosY = Math.min(y, _pictureHeight-_locoHeight); + } + /// + /// Изменение направления перемещения + /// + /// Направление + public void MoveTransport(Direction direction) + { + if (_EntityLoco == null){ + return; + } + switch (direction) + { + //влево + case Left: + if (_startPosX - _EntityLoco.Step > 0) + { + _startPosX -= (int)_EntityLoco.Step; + } + break; + //вверх + case Up: + if (_startPosY - _EntityLoco.Step > 0) + { + _startPosY -= (int)_EntityLoco.Step; + } + break; + // вправо + case Right: + if (_startPosX + _locoWidth + _EntityLoco.Step < _pictureWidth) + { + _startPosX += (int)_EntityLoco.Step; + } + break; + //вниз + case Down: + if (_startPosY + _locoHeight + _EntityLoco.Step < _pictureHeight) + { + _startPosY += (int)_EntityLoco.Step; + } + break; + } + } + /// + /// Прорисовка объекта + /// + /// + public void DrawTransport(Graphics2D g2d) + { + + if (_EntityLoco == null) + { + return; + } + + // body + g2d.setColor(_EntityLoco.BodyColor); + g2d.drawPolyline(new int[]{ + _startPosX + 8, _startPosX + 79, _startPosX + 79, _startPosX + 4, _startPosX + 4, _startPosX + 8, + }, new int[]{ + _startPosY+10, _startPosY+10, _startPosY+32, _startPosY+32, _startPosY+20, _startPosY+10 + }, 6); + g2d.drawPolyline(new int[]{ + _startPosX + 4, _startPosX + 29, _startPosX + 29, _startPosX + 37, _startPosX + 37, _startPosX + 79, _startPosX + 37, _startPosX + 37, _startPosX + 29, _startPosX + 29, + }, new int[]{ + _startPosY+21, _startPosY+21, _startPosY+14, _startPosY+14, _startPosY+21, _startPosY+21, _startPosY+21, _startPosY+29, _startPosY+29, _startPosY+21 + }, 10); + + // trucks + g2d.fillPolygon(new int[]{ +_startPosX + 0,_startPosX + 5,_startPosX + 32,_startPosX + 36, + }, new int[]{ +_startPosY+37,_startPosY+33,_startPosY+33,_startPosY+37 + }, 4); + g2d.fillPolygon(new int[]{ +_startPosX + 44,_startPosX + 49,_startPosX + 76,_startPosX + 80, + }, new int[]{ +_startPosY+37,_startPosY+33,_startPosY+33,_startPosY+37 + }, 4); + + //back + g2d.fillPolygon(new int[]{ +_startPosX + 79,_startPosX + 82,_startPosX + 82,_startPosX + 79, + }, new int[]{ +_startPosY+12,_startPosY+12,_startPosY+30,_startPosY+30 + }, 4); + + + //windows + g2d.setColor(Color.BLUE); + g2d.drawRect(_startPosX + 10, _startPosY + 12, 6, 7); + g2d.drawRect(_startPosX + 19, _startPosY + 12, 6, 7); + g2d.drawRect(_startPosX + 72, _startPosY + 12, 6, 7); + + //wheels + wheelDrawing.Draw(_startPosX, _startPosY, _EntityLoco.FuelTank, _EntityLoco.BodyColor, g2d); + + g2d.setColor(_EntityLoco.AdditionalColor); + if (_EntityLoco.Tube) + { + g2d.drawPolyline(new int[] { +_startPosX + 40,_startPosX + 40,_startPosX + 45,_startPosX + 41,_startPosX + 41,_startPosX + 44,_startPosX + 44,_startPosX + 45,_startPosX + 45, + },new int[] { +_startPosY+9,_startPosY+3,_startPosY+3,_startPosY+3,_startPosY,_startPosY,_startPosY+3,_startPosY+3,_startPosY+9, + },9); + } + if (_EntityLoco.LocoLine) + { + g2d.drawPolyline(new int[] { + _startPosX + 60,_startPosX + 38, + },new int[] { + _startPosY+10,_startPosY+32 + },2); + g2d.drawPolyline(new int[] { + _startPosX + 65,_startPosX + 43, + },new int[] { + _startPosY+10,_startPosY+32 + },2); + g2d.drawPolyline(new int[] { + _startPosX + 70,_startPosX + 48, + },new int[] { + _startPosY+10,_startPosY+32 + },2); + } + if (_EntityLoco.FuelTank) + { + // body + g2d.setColor(_EntityLoco.BodyColor); + g2d.drawPolyline(new int[]{ + _startPosX + 89, _startPosX + 164, _startPosX + 164, _startPosX + 89, _startPosX + 89, + }, new int[]{ + _startPosY+10, _startPosY+10, _startPosY+32, _startPosY+32, _startPosY+10 + }, 5); + g2d.drawPolyline(new int[]{ + _startPosX + 89, _startPosX + 164, + }, new int[]{ + _startPosY+21, _startPosY+21, + }, 2); + + // trucks + g2d.fillPolygon(new int[]{ +_startPosX + 0+85,_startPosX + 5+85,_startPosX + 32+85,_startPosX + 36+85, + }, new int[]{ +_startPosY+37,_startPosY+33,_startPosY+33,_startPosY+37 + }, 4); + g2d.fillPolygon(new int[]{ +_startPosX + 44+85,_startPosX + 49+85,_startPosX + 76+85,_startPosX + 80+85, + }, new int[]{ +_startPosY+37,_startPosY+33,_startPosY+33,_startPosY+37 + }, 4); + + //back + g2d.fillPolygon(new int[]{ +_startPosX + 79+85,_startPosX + 82+85,_startPosX + 82+85,_startPosX + 79+85, + }, new int[]{ +_startPosY+12,_startPosY+12,_startPosY+30,_startPosY+30 + }, 4); + + + //front + g2d.fillPolygon(new int[]{ +_startPosX + 86,_startPosX + 89,_startPosX + 89,_startPosX + 86, + }, new int[]{ +_startPosY+12,_startPosY+12,_startPosY+30,_startPosY+30 + }, 4); + + } + } +} \ No newline at end of file diff --git a/laba1Loco/EntityLoco.java b/laba1Loco/EntityLoco.java new file mode 100644 index 0000000..fa6f254 --- /dev/null +++ b/laba1Loco/EntityLoco.java @@ -0,0 +1,69 @@ +package laba1Loco; + +import java.awt.*; +import java.util.*; +import javax.swing.*; +import javax.swing.Timer; +import java.awt.event.*; + +public class EntityLoco{ + /// + /// Скорость + /// + public int Speed; + /// + /// Вес + /// + public double Weight; + /// + /// Основной цвет + /// + public Color BodyColor; + /// + /// Дополнительный цвет (для опциональных элементов) + /// + public Color AdditionalColor; + /// + /// Признак (опция) наличия трубы + /// + public boolean Tube; + /// + /// Признак (опция) наличия бака + /// + public boolean FuelTank; + /// + /// Признак (опция) наличия паровозной полосы + /// + public boolean LocoLine; + /// + /// Шаг перемещения автомобиля + /// + public double Step; + /// + /// количество колёс [2;4] + /// + public int numWheel; + /// + /// Инициализация полей объекта-класса спортивного автомобиля + /// + /// Скорость + /// Вес автомобиля + /// Основной цвет + /// Дополнительный цвет + /// Признак наличия трубы + /// Признак наличия бака + /// Признак паровозной гоночной полосы + public void Init(int speed, double weight, Color bodyColor, Color + additionalColor, boolean tube, boolean fuelTank, boolean locoLine, int _numWheel) + { + numWheel = _numWheel; + Speed = speed; + Weight = weight; + BodyColor = bodyColor; + AdditionalColor = additionalColor; + Tube = tube; + FuelTank = fuelTank; + LocoLine = locoLine; + Step = (double)Speed * 100 / Weight; + } +} \ No newline at end of file diff --git a/laba1Loco/Form1.java b/laba1Loco/Form1.java new file mode 100644 index 0000000..988f589 --- /dev/null +++ b/laba1Loco/Form1.java @@ -0,0 +1,124 @@ +package laba1Loco; + +import java.awt.*; +import java.util.*; +import javax.swing.*; +import javax.swing.Timer; +import java.awt.event.*; + +public class Form1{ + private DrawingLoco _drawingLoco; + Canvas canv; + + public void Draw(){ + canv.repaint(); + } + + public Form1(){ + JFrame w=new JFrame ("Loco"); + JButton buttonCreate = new JButton("create"); + JButton up = new JButton(); + up.setBorderPainted(false); + up.setFocusPainted(false); + up.setContentAreaFilled(false); + up.setName("up"); + up.setIcon(new ImageIcon("images/arowUp340x259.png")); + JButton down = new JButton(); + down.setBorderPainted(false); + down.setFocusPainted(false); + down.setContentAreaFilled(false); + down.setName("down"); + down.setIcon(new ImageIcon("images/arowDown340x259.png")); + JButton left = new JButton(); + left.setBorderPainted(false); + left.setFocusPainted(false); + left.setContentAreaFilled(false); + left.setName("left"); + left.setIcon(new ImageIcon("images/arowL340x259.png")); + JButton right = new JButton(); + right.setBorderPainted(false); + right.setFocusPainted(false); + right.setContentAreaFilled(false); + right.setName("right"); + right.setIcon(new ImageIcon("images/arowR340x259.png")); + + buttonCreate.addActionListener( + new ActionListener() { + public void actionPerformed(ActionEvent e){ + System.out.println(e.getActionCommand()); + Random random = new Random(); + _drawingLoco = new DrawingLoco(); + _drawingLoco.Init(random.nextInt(100, 300), random.nextInt(1000, 3000), + new Color(random.nextInt(0, 256), random.nextInt(0, 256), random.nextInt(0, 256)), + new Color(random.nextInt(0, 256), random.nextInt(0, 256), random.nextInt(0, 256)), + random.nextInt(0, 2) == 1, random.nextInt(0, 2) == 1, random.nextInt(0, 2) == 1, + random.nextInt(2, 5), 1000, 560); + _drawingLoco.SetPosition(random.nextInt(10, 100), random.nextInt(10, 100)); + canv._drawingLoco = _drawingLoco; + Draw(); + } + } + ); + ActionListener actioListener = new ActionListener() { + public void actionPerformed(ActionEvent e){ + System.out.println(((JButton)(e.getSource())).getName()); + if (_drawingLoco == null) + { + return; + } + switch(((JButton)(e.getSource())).getName()){ + case "up": + _drawingLoco.MoveTransport(Direction.Up); + break; + case "down": + _drawingLoco.MoveTransport(Direction.Down); + break; + case "left": + _drawingLoco.MoveTransport(Direction.Left); + break; + case "right": + _drawingLoco.MoveTransport(Direction.Right); + break; + } + Draw(); + } + }; + up.addActionListener(actioListener); + down.addActionListener(actioListener); + left.addActionListener(actioListener); + right.addActionListener(actioListener); + + w.setSize (1000, 600); + w.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); + w.setLayout(null); + canv = new Canvas(); + canv.setBounds(0, 0, 1000, 600); + buttonCreate.setBounds(2, 540, 100, 20); + up.setBounds(900, 480, 40, 40); + down.setBounds(900, 520, 40, 40); + left.setBounds(860, 520, 40, 40); + right.setBounds(940, 520, 40, 40); + w.add(canv); + w.add(buttonCreate); + w.add(up); + w.add(down); + w.add(left); + w.add(right); + w.setVisible (true); + } +} + +class Canvas extends JComponent{ + public DrawingLoco _drawingLoco; + public Canvas(){ + } + public void paintComponent (Graphics g){ + if (_drawingLoco == null){ + return; + } + super.paintComponents (g) ; + Graphics2D g2d = (Graphics2D)g; + _drawingLoco.DrawTransport(g2d); + super.repaint(); + } +} \ No newline at end of file diff --git a/laba1Loco/Main.java b/laba1Loco/Main.java new file mode 100644 index 0000000..21414f2 --- /dev/null +++ b/laba1Loco/Main.java @@ -0,0 +1,7 @@ +package laba1Loco; + +public class Main{ + public static void main(String[] args) { + Form1 form1 = new Form1(); + } +} \ No newline at end of file diff --git a/laba1Loco/NumWheel.java b/laba1Loco/NumWheel.java new file mode 100644 index 0000000..fff8072 --- /dev/null +++ b/laba1Loco/NumWheel.java @@ -0,0 +1,17 @@ +package laba1Loco; + +public enum NumWheel + { + /// + /// 2 колеса + /// + TwoWheel, + /// + /// 3 колеса + /// + ThreeWheel, + /// + /// 4 колеса + /// + FourWheel + } \ No newline at end of file diff --git a/laba1Loco/images/arowDown340x259.png b/laba1Loco/images/arowDown340x259.png new file mode 100644 index 0000000000000000000000000000000000000000..1aef4dc4902c9d700c84472a0d898c2d889b1bff GIT binary patch literal 546 zcmV+-0^R+IP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!~g&e!~vBn4jTXf0k=s+K~z{r?U*}K z!$1r`O)kJpDw;F_8g4<)8K`osRGfjHThQ=nXs9y72_S-1qR7%}rByF#%50XnJmdu759=Scz?0o5)lPqO5s~3p6ibUwazg2;TENKzINXo!I~Te=QgWS@q0cO zdL+#;sL5@R#+`7iRg$wKXuX2Ox5C3`X)uK2;`s#W{$>Pg%+D94C1ZWx!bp%m1z!z| z@MtMfl@<<&mOU|onk2nJ51yX@YKpa!xa1~{7`3wJ>D3;tCI?izdO7e8l&)$dO9Bj!Si5}1#!APom$QNB{r;07*qoM6N<$g6)v%*8l(j literal 0 HcmV?d00001 diff --git a/laba1Loco/images/arowL340x259.png b/laba1Loco/images/arowL340x259.png new file mode 100644 index 0000000000000000000000000000000000000000..a2e6f8bbe983e0d111ffd9ff4cd4c4dee275e233 GIT binary patch literal 518 zcmV+h0{Q)kP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!~g&e!~vBn4jTXf0h>ugK~z{r?bbU^ z#6S$j@qr5)(Zb8GNp`k+J1duNpOP1q#+1@A!{t{xcTg(q< z!tTNMRN8Qd`S)h~Tfongi}@$AkTa;EcJI%5<;y+6(!`=B=>kUIPAxNV4IDC^L5bTv zz2w#O-sO2-#hk;T2?AEbA$jesdx9;Pj8D=MO}`6R!<{`|=T%CtR}XpR2O=Pwx0vGq zE8&p5j;K08iKAK&KFQv+iDQB)umnR9Q!4!d5~%{MQ+xZm%d3=5k8bm-oQ7-y3D-L{ zj+(nUPU-$5Uo7MBVW5W7U<(uijH&<;A$x)IQ*6co#&L*V)7~>=|FRIUc~5p=<5osB z197hrKLgqsSv;LUN+`Xiy=Un6JjK+e{}1v;r#X^_LqkAhon{G8OX5%yh)PJLL8EY} z3y3%pm7p9~+H|CDAZj6HULbI&8;B$lX;8w^CZ2{qNwA^ZR8A`5*7AlX$kV1NTYZAO zh|PPle_5DX1L*>y5;6*JK7(3xE+Z!!3fxETTfFc7fxc4u0Z7gPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!~g&e!~vBn4jTXf0hUQbK~z{r?Ug-F z#4r#>4HrP#iiU=ThFj2c1}ct4#TmBe7Bu`cG*n2O0QO7lXf!($k28}HA)aKdH(F_* zU+m=Qdrw+1$N6)${0n*s75qHA>_#MEheQ(Fyg%pJbV3Sh)go%nz6ZUMiyRV-8?rdT7mBNmVdPjzUGPlA@p{R}-+H)zl=-f)=^Aulqbp>HOp_&t$AMCkaxK z18z@Kdicm+dNf%}&1S(-IRL=|69tm2RI^C>AJh<{gCbm$7D(?-iBqC2@-99QZ(tcg z;Z|Gm3*yh|pa|Dm_u$_<#bf;Ha}Zc0YiQK~mjj|8&?LvGEx=lhq6)TB79>fwR-=SJ zX1ENm)*=VGf|z(K*0ux{0~R?j2zn@slO(wqu*!kZTg+voYAtdgwBQ)6VueNC#Z%?L z?1COS5F)5ac;!II9xM!}IY6usDmVv=91;&J7fk5~fSW7Gxh?vk00000NkvXXu0mjf DO?%Py literal 0 HcmV?d00001 diff --git a/laba1Loco/images/arowUp340x259.png b/laba1Loco/images/arowUp340x259.png new file mode 100644 index 0000000000000000000000000000000000000000..3d8743b00a1f9b37bebd129eab40f08749b02c44 GIT binary patch literal 541 zcmV+&0^Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!~g&e!~vBn4jTXf0kTO%K~z{r?U*}K z!!Qtr4HsZ06%7rKhFj2c1}ct4l{2L07BoB>8mi220>~PzNBrKEcD0I!0lpcJY$vk5 z{43c>4nB4aKbWq9+mnm5Hw>%S$FvvYFtuTFIRcMc>5?GJtR9}mme^jNk8L!`aDtK? z!N<`gyObE^m>!ZLK^*w({(9Pa(JY9iMJYaxrr0Eiay257Zb4}ft)$XKv?iY{A<``00000NkvXXu0mjf6Bg`~ literal 0 HcmV?d00001 -- 2.25.1 From b6967382fa29168781012d24b76dba91a22d7226 Mon Sep 17 00:00:00 2001 From: Timourka Date: Sat, 7 Oct 2023 20:22:30 +0400 Subject: [PATCH 4/5] =?UTF-8?q?=D0=BA=D0=BE=D0=BC=D0=BC=D0=B8=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- laba1Loco/DrawingLoco.java | 83 ---------------------------------- laba1Loco/Form1.java | 8 ++-- laba1Loco/WheelDrawing.java | 90 +++++++++++++++++++++++++++++++++++++ 3 files changed, 94 insertions(+), 87 deletions(-) create mode 100644 laba1Loco/WheelDrawing.java diff --git a/laba1Loco/DrawingLoco.java b/laba1Loco/DrawingLoco.java index 22c71c9..8e4c1be 100644 --- a/laba1Loco/DrawingLoco.java +++ b/laba1Loco/DrawingLoco.java @@ -8,89 +8,6 @@ import java.awt.event.*; public class DrawingLoco{ - public class WheelDrawing{ - private NumWheel numWheel; - - public NumWheel getSomeProperty() { - return numWheel; - } - - public void setNumWheel(int kwheel){ - switch(kwheel){ - case 2: - numWheel = NumWheel.TwoWheel; - break; - case 3: - numWheel = NumWheel.ThreeWheel; - break; - case 4: - numWheel = NumWheel.FourWheel; - break; - default: - numWheel = NumWheel.TwoWheel; - System.out.println("ВСё плохо, колво колёс почему то не соответтвовало критериям, количество колёс:" + Integer.toString(kwheel) + "но вывели мы как будто их было 2"); - break; - } - } - - void Draw(int _startPosX, int _startPosY, boolean fuelTank, Color color, Graphics2D g2d){ - - g2d.setColor(color); - - g2d.fillOval(_startPosX + 3, _startPosY + 34, 8, 8); - g2d.fillOval(_startPosX + 4, _startPosY + 35, 6, 6); - g2d.fillOval(_startPosX + 26, _startPosY + 34, 8, 8); - g2d.fillOval(_startPosX + 27, _startPosY + 35, 6, 6); - g2d.fillOval(_startPosX + 46, _startPosY + 34, 8, 8); - g2d.fillOval(_startPosX + 47, _startPosY + 35, 6, 6); - g2d.fillOval(_startPosX + 72, _startPosY + 34, 8, 8); - g2d.fillOval(_startPosX + 73, _startPosY + 35, 6, 6); - if (numWheel == NumWheel.TwoWheel){ - g2d.fillOval(_startPosX + 14, _startPosY + 34, 8, 8); - g2d.fillOval(_startPosX + 15, _startPosY + 35, 6, 6); - g2d.fillOval(_startPosX + 59, _startPosY + 34, 8, 8); - g2d.fillOval(_startPosX + 60, _startPosY + 35, 6, 6); - } - if (numWheel == NumWheel.FourWheel){ - g2d.fillOval(_startPosX + 11, _startPosY + 34, 8, 8); - g2d.fillOval(_startPosX + 12, _startPosY + 35, 6, 6); - g2d.fillOval(_startPosX + 18, _startPosY + 34, 8, 8); - g2d.fillOval(_startPosX + 19, _startPosY + 35, 6, 6); - g2d.fillOval(_startPosX + 55, _startPosY + 34, 8, 8); - g2d.fillOval(_startPosX + 56, _startPosY + 35, 6, 6); - g2d.fillOval(_startPosX + 63, _startPosY + 34, 8, 8); - g2d.fillOval(_startPosX + 64, _startPosY + 35, 6, 6); - } - - if (fuelTank){ - g2d.fillOval(_startPosX + 3+85, _startPosY + 34, 8, 8); - g2d.fillOval(_startPosX + 4+85, _startPosY + 35, 6, 6); - g2d.fillOval(_startPosX + 26+85, _startPosY + 34, 8, 8); - g2d.fillOval(_startPosX + 27+85, _startPosY + 35, 6, 6); - g2d.fillOval(_startPosX + 46+85, _startPosY + 34, 8, 8); - g2d.fillOval(_startPosX + 47+85, _startPosY + 35, 6, 6); - g2d.fillOval(_startPosX + 72+85, _startPosY + 34, 8, 8); - g2d.fillOval(_startPosX + 73+85, _startPosY + 35, 6, 6); - if (numWheel == NumWheel.TwoWheel){ - g2d.fillOval(_startPosX + 14+85, _startPosY + 34, 8, 8); - g2d.fillOval(_startPosX + 15+85, _startPosY + 35, 6, 6); - g2d.fillOval(_startPosX + 59+85, _startPosY + 34, 8, 8); - g2d.fillOval(_startPosX + 60+85, _startPosY + 35, 6, 6); - } - if (numWheel == NumWheel.FourWheel){ - g2d.fillOval(_startPosX + 11+85, _startPosY + 34, 8, 8); - g2d.fillOval(_startPosX + 12+85, _startPosY + 35, 6, 6); - g2d.fillOval(_startPosX + 18+85, _startPosY + 34, 8, 8); - g2d.fillOval(_startPosX + 19+85, _startPosY + 35, 6, 6); - g2d.fillOval(_startPosX + 55+85, _startPosY + 34, 8, 8); - g2d.fillOval(_startPosX + 56+85, _startPosY + 35, 6, 6); - g2d.fillOval(_startPosX + 63+85, _startPosY + 34, 8, 8); - g2d.fillOval(_startPosX + 64+85, _startPosY + 35, 6, 6); - } - } - } - } - private WheelDrawing wheelDrawing; /// diff --git a/laba1Loco/Form1.java b/laba1Loco/Form1.java index 988f589..6ad7e67 100644 --- a/laba1Loco/Form1.java +++ b/laba1Loco/Form1.java @@ -22,25 +22,25 @@ public class Form1{ up.setFocusPainted(false); up.setContentAreaFilled(false); up.setName("up"); - up.setIcon(new ImageIcon("images/arowUp340x259.png")); + up.setIcon(new ImageIcon("D:\\Coffee\\PIbd-21_Kouvshinoff_T._A._WarmlyLocomotive._Harder\\laba1Loco\\images\\arowUp340x259.png")); JButton down = new JButton(); down.setBorderPainted(false); down.setFocusPainted(false); down.setContentAreaFilled(false); down.setName("down"); - down.setIcon(new ImageIcon("images/arowDown340x259.png")); + down.setIcon(new ImageIcon("D:\\Coffee\\PIbd-21_Kouvshinoff_T._A._WarmlyLocomotive._Harder\\laba1Loco\\images\\arowDown340x259.png")); JButton left = new JButton(); left.setBorderPainted(false); left.setFocusPainted(false); left.setContentAreaFilled(false); left.setName("left"); - left.setIcon(new ImageIcon("images/arowL340x259.png")); + left.setIcon(new ImageIcon("D:\\Coffee\\PIbd-21_Kouvshinoff_T._A._WarmlyLocomotive._Harder\\laba1Loco\\images\\arowL340x259.png")); JButton right = new JButton(); right.setBorderPainted(false); right.setFocusPainted(false); right.setContentAreaFilled(false); right.setName("right"); - right.setIcon(new ImageIcon("images/arowR340x259.png")); + right.setIcon(new ImageIcon("D:\\Coffee\\PIbd-21_Kouvshinoff_T._A._WarmlyLocomotive._Harder\\laba1Loco\\images\\arowR340x259.png")); buttonCreate.addActionListener( new ActionListener() { diff --git a/laba1Loco/WheelDrawing.java b/laba1Loco/WheelDrawing.java new file mode 100644 index 0000000..33935fb --- /dev/null +++ b/laba1Loco/WheelDrawing.java @@ -0,0 +1,90 @@ +package laba1Loco; + +import java.awt.*; +import java.util.*; +import javax.swing.*; +import javax.swing.Timer; +import java.awt.event.*; + +public class WheelDrawing{ + private NumWheel numWheel; + + public NumWheel getSomeProperty() { + return numWheel; + } + + public void setNumWheel(int kwheel){ + switch(kwheel){ + case 2: + numWheel = NumWheel.TwoWheel; + break; + case 3: + numWheel = NumWheel.ThreeWheel; + break; + case 4: + numWheel = NumWheel.FourWheel; + break; + default: + numWheel = NumWheel.TwoWheel; + System.out.println("ВСё плохо, колво колёс почему то не соответтвовало критериям, количество колёс:" + Integer.toString(kwheel) + "но вывели мы как будто их было 2"); + break; + } + } + + void Draw(int _startPosX, int _startPosY, boolean fuelTank, Color color, Graphics2D g2d){ + + g2d.setColor(color); + + g2d.fillOval(_startPosX + 3, _startPosY + 34, 8, 8); + g2d.fillOval(_startPosX + 4, _startPosY + 35, 6, 6); + g2d.fillOval(_startPosX + 26, _startPosY + 34, 8, 8); + g2d.fillOval(_startPosX + 27, _startPosY + 35, 6, 6); + g2d.fillOval(_startPosX + 46, _startPosY + 34, 8, 8); + g2d.fillOval(_startPosX + 47, _startPosY + 35, 6, 6); + g2d.fillOval(_startPosX + 72, _startPosY + 34, 8, 8); + g2d.fillOval(_startPosX + 73, _startPosY + 35, 6, 6); + if (numWheel == NumWheel.TwoWheel){ + g2d.fillOval(_startPosX + 14, _startPosY + 34, 8, 8); + g2d.fillOval(_startPosX + 15, _startPosY + 35, 6, 6); + g2d.fillOval(_startPosX + 59, _startPosY + 34, 8, 8); + g2d.fillOval(_startPosX + 60, _startPosY + 35, 6, 6); + } + if (numWheel == NumWheel.FourWheel){ + g2d.fillOval(_startPosX + 11, _startPosY + 34, 8, 8); + g2d.fillOval(_startPosX + 12, _startPosY + 35, 6, 6); + g2d.fillOval(_startPosX + 18, _startPosY + 34, 8, 8); + g2d.fillOval(_startPosX + 19, _startPosY + 35, 6, 6); + g2d.fillOval(_startPosX + 55, _startPosY + 34, 8, 8); + g2d.fillOval(_startPosX + 56, _startPosY + 35, 6, 6); + g2d.fillOval(_startPosX + 63, _startPosY + 34, 8, 8); + g2d.fillOval(_startPosX + 64, _startPosY + 35, 6, 6); + } + + if (fuelTank){ + g2d.fillOval(_startPosX + 3+85, _startPosY + 34, 8, 8); + g2d.fillOval(_startPosX + 4+85, _startPosY + 35, 6, 6); + g2d.fillOval(_startPosX + 26+85, _startPosY + 34, 8, 8); + g2d.fillOval(_startPosX + 27+85, _startPosY + 35, 6, 6); + g2d.fillOval(_startPosX + 46+85, _startPosY + 34, 8, 8); + g2d.fillOval(_startPosX + 47+85, _startPosY + 35, 6, 6); + g2d.fillOval(_startPosX + 72+85, _startPosY + 34, 8, 8); + g2d.fillOval(_startPosX + 73+85, _startPosY + 35, 6, 6); + if (numWheel == NumWheel.TwoWheel){ + g2d.fillOval(_startPosX + 14+85, _startPosY + 34, 8, 8); + g2d.fillOval(_startPosX + 15+85, _startPosY + 35, 6, 6); + g2d.fillOval(_startPosX + 59+85, _startPosY + 34, 8, 8); + g2d.fillOval(_startPosX + 60+85, _startPosY + 35, 6, 6); + } + if (numWheel == NumWheel.FourWheel){ + g2d.fillOval(_startPosX + 11+85, _startPosY + 34, 8, 8); + g2d.fillOval(_startPosX + 12+85, _startPosY + 35, 6, 6); + g2d.fillOval(_startPosX + 18+85, _startPosY + 34, 8, 8); + g2d.fillOval(_startPosX + 19+85, _startPosY + 35, 6, 6); + g2d.fillOval(_startPosX + 55+85, _startPosY + 34, 8, 8); + g2d.fillOval(_startPosX + 56+85, _startPosY + 35, 6, 6); + g2d.fillOval(_startPosX + 63+85, _startPosY + 34, 8, 8); + g2d.fillOval(_startPosX + 64+85, _startPosY + 35, 6, 6); + } + } + } + } -- 2.25.1 From 815fc43a7db9304dbaf3161d06ea9265c8ea5f90 Mon Sep 17 00:00:00 2001 From: Timourka Date: Sat, 7 Oct 2023 21:05:55 +0400 Subject: [PATCH 5/5] commit2 --- laba1Loco/{Form1.java => FormTrain.java} | 4 ++-- laba1Loco/Main.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) rename laba1Loco/{Form1.java => FormTrain.java} (98%) diff --git a/laba1Loco/Form1.java b/laba1Loco/FormTrain.java similarity index 98% rename from laba1Loco/Form1.java rename to laba1Loco/FormTrain.java index 6ad7e67..1e9ad91 100644 --- a/laba1Loco/Form1.java +++ b/laba1Loco/FormTrain.java @@ -6,7 +6,7 @@ import javax.swing.*; import javax.swing.Timer; import java.awt.event.*; -public class Form1{ +public class FormTrain{ private DrawingLoco _drawingLoco; Canvas canv; @@ -14,7 +14,7 @@ public class Form1{ canv.repaint(); } - public Form1(){ + public FormTrain(){ JFrame w=new JFrame ("Loco"); JButton buttonCreate = new JButton("create"); JButton up = new JButton(); diff --git a/laba1Loco/Main.java b/laba1Loco/Main.java index 21414f2..3367941 100644 --- a/laba1Loco/Main.java +++ b/laba1Loco/Main.java @@ -2,6 +2,6 @@ package laba1Loco; public class Main{ public static void main(String[] args) { - Form1 form1 = new Form1(); + FormTrain formTrain = new FormTrain(); } } \ No newline at end of file -- 2.25.1