#java #polygon #stroke
#java #полигон #обводка
Вопрос:
Я рисую две звезды, используя:
public void draw(Graphics2D g2) {
g2.drawPolygon(xCoordOfStar, yCoordOfStar, POINTS);
g2.setStroke(new BasicStroke(5));
}
и:
public void paintComponent(Graphics g)
{
Graphics2D g2 = (Graphics2D) g;
Star star1 = new Star(100,200,300);
Star star2 = new Star(200,200,300);
star1.draw(g2);
star2.draw(g2);
}
В другом классе.
По какой-то неизвестной мне причине только большая звезда ( star2
) получает более толстую границу, но star1
не получает никакой границы. Что я делаю не так?
Комментарии:
1. может быть, это потому, что вы устанавливаете обводку ПОСЛЕ рисования многоугольника, а не раньше?
2. я когда-нибудь чувствовал себя глупо сейчас.
Ответ №1:
Это проблема с порядком. Ваш второй полигон получает границу, потому что ваш первый полигон вызвал g2.setStroke(new BasicStroke(5));
комментарий к первому коду звезды, вторая звезда теперь также теряет свою границу.
Чтобы исправить это, вам просто нужно изменить порядок методов:
public void draw(Graphics2D g2) {
g2.setStroke(new BasicStroke(5));
g2.drawPolygon(xCoordOfStar, yCoordOfStar, POINTS);
}