Готовая Усложненная Лаба 1

This commit is contained in:
spacyboy 2023-12-19 22:51:32 +04:00
parent c23479c971
commit c1a4102d9d
8 changed files with 61 additions and 61 deletions

2
.idea/misc.xml generated
View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<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" />
</component>
</project>

View File

@ -1,7 +1,8 @@
import java.awt.*;
public class DrawingRoadTrain {
private WindowDrawing windowDrawing;
private WheelDrawing wheelDrawing;
public EntityRoadTrain EntityRoadTrain;
private int _pictureWidth;
private int _pictureHeight;
@ -10,17 +11,17 @@ public class DrawingRoadTrain {
private int _roadTrainWidth = 200;
private int _roadTrainHeight = 100;
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;
_pictureHeight = height;
if (_pictureHeight < _roadTrainHeight || _pictureWidth < _roadTrainWidth)
return false;
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();
windowDrawing.setNumWindow(numWindow);
wheelDrawing = new WheelDrawing();
wheelDrawing.setNumWheel(numWheel);
return true;
}
public void SetPosition(int x, int y)
@ -67,9 +68,6 @@ public class DrawingRoadTrain {
}
// машина
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 + 10, _startPosY, 90, 50); // бак с водой
g.drawRect(_startPosX + 130, _startPosY + 20, 30, 20); // окно
@ -77,9 +75,8 @@ public class DrawingRoadTrain {
g.drawRect(_startPosX + 170, _startPosY + 80, 40, 10); // щетка
// обвесы
g.setColor(EntityRoadTrain.AdditionalColor);
if (EntityRoadTrain.Wheel) {
g.fillOval(_startPosX + 75, _startPosY + 70, 30, 30); // колесо
}
wheelDrawing.Draw(_startPosX, _startPosY, EntityRoadTrain.AdditionalColor, g);
if (EntityRoadTrain.Door) {
g.fillRect(_startPosX + 40, _startPosY + 20, 20, 30); // дверь
}

View File

@ -9,11 +9,11 @@ public class EntityRoadTrain {
public boolean Door;
public boolean Light;
public double Step;
public int numWindow;
public int numWheel;
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;
Weight = weight;
BodyColor = bodyColor;

View File

@ -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)),
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));
canv._drawingRoadTrain = _drawingRoadTrain;
Draw();

6
NumWheel.java Normal file
View File

@ -0,0 +1,6 @@
public enum NumWheel
{
oneWheel,
twoWheel,
threeWheel
}

View File

@ -1,6 +0,0 @@
public enum NumWindow
{
tenWindows,
twentyWindows,
thirtyWindows
}

42
WheelDrawing.java Normal file
View 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);
}
};
}
}

View File

@ -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);
}
}
}
}