Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

<groupId>com.github.KrumSpace</groupId>
<artifactId>SpacePlane</artifactId>
<version>0.2</version>
<version>0.3</version>

<properties>
<maven.compiler.source>19</maven.compiler.source>
Expand Down
29 changes: 14 additions & 15 deletions src/main/java/main/graphics/Window.java
Original file line number Diff line number Diff line change
@@ -1,50 +1,49 @@
package main.graphics;

import java.awt.Point;
import java.awt.Dimension;
import java.awt.Color;
import java.awt.*;
import javax.swing.JFrame;
import javax.swing.JPanel;

import vehicles.Vehicle;
import vehicleGraphics.VehiclePanelData;
import vehicleGraphics.VehiclePanel;
import vehicles.VehicleAdapter;

//
public class Window extends JFrame {
private static final int[] SIZE_CORRECTION = new int[] {17, 40};
private static final Dimension PANEL_SIZE = new Dimension(1000, 900);
private static final int[] WINDOW_SIZE_CORRECTION = new int[] {17, 40};
private static final Point LOCATION = new Point(600, 50);
private static final String WINDOW_TITLE = "Vehicle viewer";
private static final Color BACKGROUND = Color.BLACK;

private final VehiclePanelData vehiclePanelData;

//
public Window(VehicleAdapter vehicleAdapter) {
super();
setWindowConfig();
setContents(vehicleAdapter);
setResizable(false);
vehiclePanelData = new VehiclePanelData(vehicleAdapter, PANEL_SIZE);
setContents();
//setResizable(false);
setVisible(true);
}

private void setWindowConfig() {
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocation(LOCATION);

Dimension optimalSize = VehiclePanelData.getOptimalSize();
setSize(new Dimension(
optimalSize.width + SIZE_CORRECTION[0],
optimalSize.height + SIZE_CORRECTION[1]));
PANEL_SIZE.width + WINDOW_SIZE_CORRECTION[0],
PANEL_SIZE.height + WINDOW_SIZE_CORRECTION[1]));

setTitle(WINDOW_TITLE);
}

private void setContents(VehicleAdapter vehicleAdapter) {
private void setContents() {
setBackground(BACKGROUND);
add(getVehiclePanel(vehicleAdapter));
add(getVehiclePanel());
}

private JPanel getVehiclePanel(VehicleAdapter vehicleAdapter) {
return new VehiclePanel(new VehiclePanelData(vehicleAdapter));
private JPanel getVehiclePanel() {
return new VehiclePanel(vehiclePanelData);
}
}
24 changes: 24 additions & 0 deletions src/main/java/mathUtilities/Circles.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package mathUtilities;

//
public class Circles {
// C = 2 * pi * R
public static double getCircumference(double radius) {
return 2 * Math.PI * radius;
}

// R = C / 2 / pi
public static double getRadiusFromCircumference(double circumference) {
return circumference / 2 / Math.PI;
}

// S = pi * R ^ 2
public static double getArea(double radius) {
return Math.PI * Math.pow(radius, 2);
}

// R = sqrt(S / pi)
public static double getRadiusFromArea(double area) {
return Math.sqrt(area / Math.PI);
}
}
18 changes: 18 additions & 0 deletions src/main/java/mathUtilities/Cylinders.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package mathUtilities;

//
public class Cylinders {
//
public static double getVolume(double diameter, double length) {
return getCrossSection(diameter) * length;
}

//
public static double getLength(double volume, double diameter) {
return volume / getCrossSection(diameter);
}

private static double getCrossSection(double diameter) {
return Circles.getArea(diameter / 2);
}
}
7 changes: 3 additions & 4 deletions src/main/java/vehicleGraphics/BorderPainter.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,22 +6,21 @@
//
class BorderPainter implements PainterInterface {
private final VehiclePanelData panelData;
private final Dimension size;

//
protected BorderPainter(VehiclePanelData panelData, Dimension size) {
protected BorderPainter(VehiclePanelData panelData) {
this.panelData = panelData;
this.size = size;
}

//
@Override
public void paint(Graphics g, int[] drawLocation) {
g.setColor(panelData.getBorderColor());
Dimension size = panelData.getPanelSize();
int
offset = panelData.getBorderOffset(),
x = size.width,
y = size.height;
g.setColor(panelData.getBorderColor());
g.drawRect(offset, offset, Math.max(0, x - 2 * offset), Math.max(0, y - 2 * offset));
}
}
Loading