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