92 lines
4.2 KiB
Java
92 lines
4.2 KiB
Java
|
import java.awt.*;
|
||
|
|
||
|
public class DrawningCrossRollers implements IDrawningRollers{
|
||
|
private RollersCount rollersCount;
|
||
|
private Color colorRollers;
|
||
|
|
||
|
public void setRollersCount(int count){
|
||
|
switch (count) {
|
||
|
case 4 -> rollersCount = RollersCount.Four;
|
||
|
case 5 -> rollersCount = RollersCount.Five;
|
||
|
case 6 -> rollersCount = RollersCount.Six;
|
||
|
default -> rollersCount = RollersCount.Four;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public DrawningCrossRollers(int count, Color colorRollers){
|
||
|
setRollersCount(count);
|
||
|
this.colorRollers = colorRollers;
|
||
|
}
|
||
|
|
||
|
public void DrawRollers(Graphics2D g, float _startPosX, float _startPosY){
|
||
|
Color penColor = Color.BLACK;
|
||
|
Color mainColor = colorRollers==null ? Color.LIGHT_GRAY : colorRollers;
|
||
|
|
||
|
// Крупные катки - всегда
|
||
|
g.setColor(mainColor);
|
||
|
g.fillOval((int)_startPosX + 5, (int)_startPosY + 60, 22, 22);
|
||
|
g.setColor(penColor);
|
||
|
g.drawOval((int)_startPosX + 5, (int)_startPosY + 60, 22, 22);
|
||
|
// вертикальное перекрестие
|
||
|
g.fillRect((int)_startPosX + 5 + 9, (int)_startPosY + 60 + 5, 5, 14);
|
||
|
// горизонтальное перекрестие
|
||
|
g.fillRect((int)_startPosX + 5 + 5, (int)_startPosY + 60 + 9, 13, 5);
|
||
|
|
||
|
g.setColor(mainColor);
|
||
|
g.fillOval((int)_startPosX + 83, (int)_startPosY + 60, 22, 22);
|
||
|
g.setColor(penColor);
|
||
|
g.drawOval((int)_startPosX + 83, (int)_startPosY + 60, 22, 22);
|
||
|
// вертикальное перекрестие
|
||
|
g.fillRect((int)_startPosX + 83 + 9, (int)_startPosY + 60 + 5, 5, 14);
|
||
|
// горизонтальное перекрестие
|
||
|
g.fillRect((int)_startPosX + 83 + 5, (int)_startPosY + 60 + 9, 13, 5);
|
||
|
|
||
|
|
||
|
// Малые катки - всегда
|
||
|
g.setColor(mainColor);
|
||
|
g.fillOval((int)_startPosX + 43, (int)_startPosY + 58, 6, 6);
|
||
|
g.setColor(penColor);
|
||
|
g.drawOval((int)_startPosX + 43, (int)_startPosY + 58, 6, 6);
|
||
|
// вертикальное перекрестие
|
||
|
g.fillRect((int)_startPosX + 43 + 3, (int)_startPosY + 58 + 2, 1, 3);
|
||
|
// горизонтальное перекрестие
|
||
|
g.fillRect((int)_startPosX + 43 + 2, (int)_startPosY + 58 + 3, 3, 1);
|
||
|
|
||
|
g.setColor(mainColor);
|
||
|
g.fillOval((int)_startPosX + 61, (int)_startPosY + 58, 6, 6);
|
||
|
g.setColor(penColor);
|
||
|
g.drawOval((int)_startPosX + 61, (int)_startPosY + 58, 6, 6);
|
||
|
// вертикальное перекрестие
|
||
|
g.fillRect((int)_startPosX + 61 + 3, (int)_startPosY + 58 + 2, 1, 3);
|
||
|
// горизонтальное перекрестие
|
||
|
g.fillRect((int)_startPosX + 61 + 2, (int)_startPosY + 58 + 3, 3, 1);
|
||
|
|
||
|
// Средние катки - не всегда
|
||
|
switch (rollersCount){
|
||
|
case Six:
|
||
|
g.setColor(mainColor);
|
||
|
g.fillOval((int)_startPosX + 33, (int)_startPosY + 73, 10, 10);
|
||
|
g.setColor(penColor);
|
||
|
g.drawOval((int)_startPosX + 33, (int)_startPosY + 73, 10, 10);
|
||
|
// вертикальное перекрестие
|
||
|
g.fillRect((int)_startPosX + 33 + 4, (int)_startPosY + 73 + 2, 2, 6);
|
||
|
// горизонтальное перекрестие
|
||
|
g.fillRect((int)_startPosX + 33 + 2, (int)_startPosY + 73 + 4, 6, 2);
|
||
|
case Five:
|
||
|
g.setColor(mainColor);
|
||
|
g.fillOval((int)_startPosX + 68, (int)_startPosY + 73, 10, 10);
|
||
|
g.setColor(penColor);
|
||
|
g.drawOval((int)_startPosX + 68, (int)_startPosY + 73, 10, 10);
|
||
|
// вертикальное перекрестие
|
||
|
g.fillRect((int)_startPosX + 68 + 4, (int)_startPosY + 73 + 2, 2, 6);
|
||
|
// горизонтальное перекрестие
|
||
|
g.fillRect((int)_startPosX + 68 + 2, (int)_startPosY + 73 + 4, 6, 2);
|
||
|
}
|
||
|
|
||
|
// Центры крупных катков
|
||
|
g.setColor(Color.BLACK);
|
||
|
g.fillOval((int)_startPosX + 13, (int)_startPosY + 68, 6, 6);
|
||
|
g.fillOval((int)_startPosX + 91, (int)_startPosY + 68, 6, 6);
|
||
|
}
|
||
|
}
|