Готовая Усложненная Лаба 1
This commit is contained in:
parent
c23479c971
commit
c1a4102d9d
2
.idea/misc.xml
generated
2
.idea/misc.xml
generated
@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_X" default="true" project-jdk-name="openjdk-21" project-jdk-type="JavaSDK">
|
<component name="ProjectRootManager" version="2" languageLevel="JDK_20" project-jdk-name="openjdk-21" project-jdk-type="JavaSDK">
|
||||||
<output url="file://$PROJECT_DIR$/out" />
|
<output url="file://$PROJECT_DIR$/out" />
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
@ -1,7 +1,8 @@
|
|||||||
|
|
||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
|
|
||||||
public class DrawingRoadTrain {
|
public class DrawingRoadTrain {
|
||||||
private WindowDrawing windowDrawing;
|
private WheelDrawing wheelDrawing;
|
||||||
public EntityRoadTrain EntityRoadTrain;
|
public EntityRoadTrain EntityRoadTrain;
|
||||||
private int _pictureWidth;
|
private int _pictureWidth;
|
||||||
private int _pictureHeight;
|
private int _pictureHeight;
|
||||||
@ -10,17 +11,17 @@ public class DrawingRoadTrain {
|
|||||||
private int _roadTrainWidth = 200;
|
private int _roadTrainWidth = 200;
|
||||||
private int _roadTrainHeight = 100;
|
private int _roadTrainHeight = 100;
|
||||||
public boolean Init(int speed, double weight, Color bodyColor, Color
|
public boolean Init(int speed, double weight, Color bodyColor, Color
|
||||||
additionalColor, boolean wheel, boolean door, boolean light, int numWindow, int width, int height)
|
additionalColor, boolean wheel, boolean door, boolean light, int numWheel, int width, int height)
|
||||||
{
|
{
|
||||||
_pictureWidth = width;
|
_pictureWidth = width;
|
||||||
_pictureHeight = height;
|
_pictureHeight = height;
|
||||||
if (_pictureHeight < _roadTrainHeight || _pictureWidth < _roadTrainWidth)
|
if (_pictureHeight < _roadTrainHeight || _pictureWidth < _roadTrainWidth)
|
||||||
return false;
|
return false;
|
||||||
EntityRoadTrain = new EntityRoadTrain();
|
EntityRoadTrain = new EntityRoadTrain();
|
||||||
EntityRoadTrain.Init(speed, weight, bodyColor, additionalColor,wheel, door, light, numWindow);
|
EntityRoadTrain.Init(speed, weight, bodyColor, additionalColor,wheel, door, light, numWheel);
|
||||||
|
|
||||||
windowDrawing = new WindowDrawing();
|
wheelDrawing = new WheelDrawing();
|
||||||
windowDrawing.setNumWindow(numWindow);
|
wheelDrawing.setNumWheel(numWheel);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
public void SetPosition(int x, int y)
|
public void SetPosition(int x, int y)
|
||||||
@ -67,9 +68,6 @@ public class DrawingRoadTrain {
|
|||||||
}
|
}
|
||||||
// машина
|
// машина
|
||||||
g.drawRect(_startPosX, _startPosY + 50, 160, 20); // кузов
|
g.drawRect(_startPosX, _startPosY + 50, 160, 20); // кузов
|
||||||
g.drawOval(_startPosX + 5, _startPosY + 70, 30, 30); // колесо
|
|
||||||
g.drawOval(_startPosX + 40, _startPosY + 70, 30, 30); // колесо
|
|
||||||
g.drawOval(_startPosX + 120, _startPosY + 70, 30, 30); // колесо
|
|
||||||
g.drawRect(_startPosX + 120, _startPosY + 10, 40, 40); // кабина
|
g.drawRect(_startPosX + 120, _startPosY + 10, 40, 40); // кабина
|
||||||
g.drawRect(_startPosX + 10, _startPosY, 90, 50); // бак с водой
|
g.drawRect(_startPosX + 10, _startPosY, 90, 50); // бак с водой
|
||||||
g.drawRect(_startPosX + 130, _startPosY + 20, 30, 20); // окно
|
g.drawRect(_startPosX + 130, _startPosY + 20, 30, 20); // окно
|
||||||
@ -77,9 +75,8 @@ public class DrawingRoadTrain {
|
|||||||
g.drawRect(_startPosX + 170, _startPosY + 80, 40, 10); // щетка
|
g.drawRect(_startPosX + 170, _startPosY + 80, 40, 10); // щетка
|
||||||
// обвесы
|
// обвесы
|
||||||
g.setColor(EntityRoadTrain.AdditionalColor);
|
g.setColor(EntityRoadTrain.AdditionalColor);
|
||||||
if (EntityRoadTrain.Wheel) {
|
wheelDrawing.Draw(_startPosX, _startPosY, EntityRoadTrain.AdditionalColor, g);
|
||||||
g.fillOval(_startPosX + 75, _startPosY + 70, 30, 30); // колесо
|
|
||||||
}
|
|
||||||
if (EntityRoadTrain.Door) {
|
if (EntityRoadTrain.Door) {
|
||||||
g.fillRect(_startPosX + 40, _startPosY + 20, 20, 30); // дверь
|
g.fillRect(_startPosX + 40, _startPosY + 20, 20, 30); // дверь
|
||||||
}
|
}
|
||||||
|
@ -9,11 +9,11 @@ public class EntityRoadTrain {
|
|||||||
public boolean Door;
|
public boolean Door;
|
||||||
public boolean Light;
|
public boolean Light;
|
||||||
public double Step;
|
public double Step;
|
||||||
public int numWindow;
|
public int numWheel;
|
||||||
public void Init(int speed, double weight, Color bodyColor, Color
|
public void Init(int speed, double weight, Color bodyColor, Color
|
||||||
additionalColor, boolean wheel, boolean door, boolean light, int _numWindow)
|
additionalColor, boolean wheel, boolean door, boolean light, int numwheel)
|
||||||
{
|
{
|
||||||
numWindow = _numWindow;
|
numWheel = numwheel;
|
||||||
Speed = speed;
|
Speed = speed;
|
||||||
Weight = weight;
|
Weight = weight;
|
||||||
BodyColor = bodyColor;
|
BodyColor = bodyColor;
|
||||||
|
@ -57,7 +57,7 @@ public class FormRoadTrain {
|
|||||||
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)),
|
||||||
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(0, 2) == 1, random.nextInt(0, 2) == 1,random.nextInt(0, 2) == 1,
|
||||||
random.nextInt(1, 4)*10, 1000, 560);
|
random.nextInt(1, 4), 1000, 560);
|
||||||
_drawingRoadTrain.SetPosition(random.nextInt(10, 100), random.nextInt(10, 100));
|
_drawingRoadTrain.SetPosition(random.nextInt(10, 100), random.nextInt(10, 100));
|
||||||
canv._drawingRoadTrain = _drawingRoadTrain;
|
canv._drawingRoadTrain = _drawingRoadTrain;
|
||||||
Draw();
|
Draw();
|
||||||
|
6
NumWheel.java
Normal file
6
NumWheel.java
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
public enum NumWheel
|
||||||
|
{
|
||||||
|
oneWheel,
|
||||||
|
twoWheel,
|
||||||
|
threeWheel
|
||||||
|
}
|
@ -1,6 +0,0 @@
|
|||||||
public enum NumWindow
|
|
||||||
{
|
|
||||||
tenWindows,
|
|
||||||
twentyWindows,
|
|
||||||
thirtyWindows
|
|
||||||
}
|
|
42
WheelDrawing.java
Normal file
42
WheelDrawing.java
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
import java.awt.*;
|
||||||
|
|
||||||
|
public class WheelDrawing {
|
||||||
|
private NumWheel numWheel;
|
||||||
|
public NumWheel getSomeProperty() {
|
||||||
|
return numWheel;
|
||||||
|
}
|
||||||
|
public void setNumWheel(int kWheel){
|
||||||
|
switch(kWheel){
|
||||||
|
case 1:
|
||||||
|
numWheel = NumWheel.oneWheel;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
numWheel = NumWheel.twoWheel;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
numWheel = NumWheel.threeWheel;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
numWheel = NumWheel.oneWheel;
|
||||||
|
System.out.println("Ошибка! Количество " + kWheel);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
void Draw(int _startPosX, int _startPosY, Color color, Graphics2D g){
|
||||||
|
g.setColor(color);
|
||||||
|
switch (numWheel) {
|
||||||
|
case oneWheel -> {
|
||||||
|
g.drawOval(_startPosX + 120, _startPosY + 70, 30, 30);
|
||||||
|
}
|
||||||
|
case twoWheel -> {
|
||||||
|
g.drawOval(_startPosX + 120, _startPosY + 70, 30, 30);
|
||||||
|
g.drawOval(_startPosX + 50, _startPosY + 70, 30, 30);
|
||||||
|
}
|
||||||
|
case threeWheel -> {
|
||||||
|
g.drawOval(_startPosX + 120, _startPosY + 70, 30, 30);
|
||||||
|
g.drawOval(_startPosX + 55, _startPosY + 70, 30, 30);
|
||||||
|
g.drawOval(_startPosX + 15, _startPosY + 70, 30, 30);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
@ -1,39 +0,0 @@
|
|||||||
import java.awt.*;
|
|
||||||
|
|
||||||
public class WindowDrawing{
|
|
||||||
private NumWindow numWindow;
|
|
||||||
public NumWindow getSomeProperty() {
|
|
||||||
return numWindow;
|
|
||||||
}
|
|
||||||
public void setNumWindow(int kWindow){
|
|
||||||
switch(kWindow){
|
|
||||||
case 10:
|
|
||||||
numWindow = NumWindow.tenWindows;
|
|
||||||
break;
|
|
||||||
case 20:
|
|
||||||
numWindow = NumWindow.twentyWindows;
|
|
||||||
break;
|
|
||||||
case 30:
|
|
||||||
numWindow = NumWindow.thirtyWindows;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
numWindow = NumWindow.tenWindows;
|
|
||||||
System.out.println("Ошибка! Количество " + kWindow);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
void Draw(int _startPosX, int _startPosY, Color color, Graphics2D g){
|
|
||||||
g.setColor(color);
|
|
||||||
int windowSpacing = 4;
|
|
||||||
int windowCount = switch (numWindow) {
|
|
||||||
case tenWindows -> 10;
|
|
||||||
case twentyWindows -> 20;
|
|
||||||
case thirtyWindows -> 30;
|
|
||||||
};
|
|
||||||
for (int j = 0; j < windowCount / 10; j++) {
|
|
||||||
for (int i = 0; i < 10; i++) {
|
|
||||||
g.fillOval(_startPosX + 35 + i * 8, _startPosY + 30 + j * windowSpacing, 4, 4);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
x
Reference in New Issue
Block a user