99 lines
5.1 KiB
Java
99 lines
5.1 KiB
Java
import java.awt.*;
|
|
public class DrawningWheelsCircles 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(1));
|
|
g2D.drawOval(x + 6, y + 6, 8, 8);
|
|
g2D.setStroke(new BasicStroke(1));
|
|
g2D.drawOval(x + 3, y + 3, 14, 14);
|
|
g2D.setColor(Color.BLACK);
|
|
}
|
|
}
|