98 lines
5.1 KiB
Java

import java.awt.*;
public class DrawningWheelsStar implements IDrawningWheels {
private WheelNumber wheelNumber;
@Override
public WheelNumber getWheelNumber() {
return wheelNumber;
}
@Override
public void setWheelNumber(int number) {
switch (number) {
case 1:
wheelNumber = WheelNumber.Four;
break;
case 2:
wheelNumber = WheelNumber.Five;
break;
case 3:
wheelNumber = WheelNumber.Six;
break;
default: wheelNumber = WheelNumber.Four;
}
}
@Override
public void drawWheels(Graphics2D g2d, Color color, int startPosX, int startPosY) {
switch (wheelNumber) {
case Four:
drawFourWheels(g2d, color, startPosX, startPosY);
break;
case Five:
drawFiveWheels(g2d, color, startPosX, startPosY);
break;
case Six:
drawSixWheels(g2d, color, startPosX, startPosY);
break;
}
}
private void drawFourWheels(Graphics2D g2D, Color color, int _startPosX, int _startPosY) {
g2D.setColor(color);
int wheelRadius = 10;
g2D.drawOval(_startPosX + 30, _startPosY + 60, wheelRadius * 2, wheelRadius * 2);
g2D.fillOval(_startPosX + 30, _startPosY + 60, wheelRadius * 2, wheelRadius * 2);
drawPattern(g2D, _startPosX + 30, _startPosY + 60);
g2D.drawOval(_startPosX + 56, _startPosY + 60, wheelRadius * 2, wheelRadius * 2);
g2D.fillOval(_startPosX + 56, _startPosY + 60, wheelRadius * 2, wheelRadius * 2);
drawPattern(g2D, _startPosX + 56, _startPosY + 60);
g2D.drawOval(_startPosX + 84, _startPosY + 60, wheelRadius * 2, wheelRadius * 2);
g2D.fillOval(_startPosX + 84, _startPosY + 60, wheelRadius * 2, wheelRadius * 2);
drawPattern(g2D, _startPosX + 84, _startPosY + 60);
g2D.drawOval(_startPosX + 110, _startPosY + 60, wheelRadius * 2, wheelRadius * 2);
g2D.fillOval(_startPosX + 110, _startPosY + 60, wheelRadius * 2, wheelRadius * 2);
drawPattern(g2D, _startPosX + 110, _startPosY + 60);
}
private void drawFiveWheels(Graphics2D g2D, Color color, int _startPosX, int _startPosY) {
g2D.setColor(color);
int wheelRadius = 10;
g2D.drawOval(_startPosX + 34, _startPosY + 55, wheelRadius, wheelRadius);
g2D.fillOval(_startPosX + 34, _startPosY + 55, wheelRadius, wheelRadius);
g2D.drawOval(_startPosX + 45, _startPosY + 65, wheelRadius * 2, wheelRadius * 2);
g2D.fillOval(_startPosX + 45, _startPosY + 65, wheelRadius * 2, wheelRadius * 2);
drawPattern(g2D, _startPosX + 45, _startPosY + 65);
g2D.drawOval(_startPosX + 69, _startPosY + 65, wheelRadius * 2, wheelRadius * 2);
g2D.fillOval(_startPosX + 69, _startPosY + 65, wheelRadius * 2, wheelRadius * 2);
drawPattern(g2D, _startPosX + 69, _startPosY + 65);
g2D.drawOval(_startPosX + 94, _startPosY + 65, wheelRadius * 2, wheelRadius * 2);
g2D.fillOval(_startPosX + 94, _startPosY + 65, wheelRadius * 2, wheelRadius * 2);
drawPattern(g2D, _startPosX + 94, _startPosY + 65);
g2D.drawOval(_startPosX + 115, _startPosY + 55, wheelRadius, wheelRadius);
g2D.fillOval(_startPosX + 115, _startPosY + 55, wheelRadius, wheelRadius);
}
private void drawSixWheels(Graphics2D g2D, Color color, int _startPosX, int _startPosY) {
g2D.setColor(color);
int wheelRadius = 10;
g2D.drawOval(_startPosX + 34, _startPosY + 54, wheelRadius, wheelRadius);
g2D.fillOval(_startPosX + 34, _startPosY + 54, wheelRadius, wheelRadius);
g2D.drawOval(_startPosX + 35, _startPosY + 65, wheelRadius * 2, wheelRadius * 2);
g2D.fillOval(_startPosX + 35, _startPosY + 65, wheelRadius * 2, wheelRadius * 2);
drawPattern(g2D, _startPosX + 35, _startPosY + 65);
g2D.drawOval(_startPosX + 58, _startPosY + 65, wheelRadius * 2, wheelRadius * 2);
g2D.fillOval(_startPosX + 58, _startPosY + 65, wheelRadius * 2, wheelRadius * 2);
drawPattern(g2D, _startPosX + 58, _startPosY + 65);
g2D.drawOval(_startPosX + 82, _startPosY + 65, wheelRadius * 2, wheelRadius * 2);
g2D.fillOval(_startPosX + 82, _startPosY + 65, wheelRadius * 2, wheelRadius * 2);
drawPattern(g2D, _startPosX + 82, _startPosY + 65);
g2D.drawOval(_startPosX + 105, _startPosY + 65, wheelRadius * 2, wheelRadius * 2);
g2D.fillOval(_startPosX + 105, _startPosY + 65, wheelRadius * 2, wheelRadius * 2);
drawPattern(g2D, _startPosX + 105, _startPosY + 65);
g2D.drawOval(_startPosX + 115, _startPosY + 54, wheelRadius, wheelRadius);
g2D.fillOval(_startPosX + 115, _startPosY + 54, wheelRadius, wheelRadius);
}
private void drawPattern(Graphics2D g2D, int x, int y){
g2D.setColor(Color.WHITE);
g2D.setStroke(new BasicStroke(2));
g2D.drawLine(x + 10, y + 3, x + 10, y + 17);
g2D.drawLine(x + 3, y + 10, x + 17, y + 10);
g2D.setColor(Color.BLACK);
}
}