Мой код работает очень хорошо. Моя главная проблема заключается в том, как зафиксировать длину случайной линии, а также как сохранить разрыв между всеми четырьмя линиями. Я использую команду Line2D. Одна внешняя коробка, разработанная Rectangle2D, и все 4 линии выполнены внутри внешней коробки. Пожалуйста, помогите мне, как решить эти проблемы?
Я попытался зафиксировать длину строки, но не знаю, как показать случайную позицию, потому что синтаксис Line2D имеет значения X1, Y1, X2, Y2, а в моем коде X1, Y1 получает значения из конечной точки предыдущей строки и X2, Y2 - случайные значения. Следующая строка кодов не является полной программой:
public void drawLines(Graphics g, int counter, String turnV){
boolean right=false, left=false;
RSide = LSide = 0;
g2d = (Graphics2D) g;
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
Font font = g.getFont().deriveFont(Font.BOLD, 20.0f);
g2d.setFont(font);
g2d.drawString("Qno. "+String.valueOf(counter)+". ", 100, 50);
g2d.drawString(""+turnV , 400, 50);
g2d.setStroke(new BasicStroke(3));
originPT = new Point(500, 200); //POSITION: X1,Y1 which is fixed for first line only
//FIND OUT THE RANDOM POSITION FOR LINE1 X2,Y2
randX = RandX();
randY = RandY();
endPT = new Point(randX,randY);//POSITION: X2,Y2
g2d.setColor ( Color.BLUE);
g2d.draw(new Line2D.Double(originPT, endPT));
L1Origin = originPT;
L1End = endPT;
//2nd line
randX = RandX();
randY = RandY();
originPT = new Point(randX,randY); //POSITION: X2,Y2
g2d.setColor ( Color.red);
g2d.draw(new Line2D.Double(endPT, originPT)); //GET X2,Y2 VALUES FROM LINE1 FOR X1,Y1
L2Origin = endPT;
L2End = originPT;
//3rd line - Destination
randX = RandX();
randY = RandY();
endPT = new Point(randX, randY); //POSITION X2, Y2
g2d.setColor ( Color.green);
g2d.draw(new Line2D.Double(originPT, endPT)); //GET X2, Y2 POSITION OF LINE 2 FOR X1, Y1
L3Origin = originPT;
L3End = endPT;
//4th line
randX = RandX();
randY = RandY();
originPT = new Point(randX, randY); //POSITION X2, Y2
g2d.setColor ( Color.black);
g2d.draw(new Line2D.Double(endPT, originPT)); //GET X2, Y2 POSITION OF LINE 3
L4Origin = endPT;
L4End = originPT;
}
на следующих изображениях показан вывод моей программы, здесь мне нужна фиксированная длина строки в первом изображении и во втором примере изображения, если она рядом в каждой строке, то это также равный пробел.
Генерация фиксированной линии
Создать одинаковый промежуток между всеми