Как я могу нарисовать звезду в java? Меня смущают координаты в g.drawline, потому что я не понимаю, в каком порядке они записываются и как получить представление о правильных координатах для рисования звезды.
Это то, что я беру из своего кода.
import java.awt.*;
import javax.swing.*;
class Pantalla extends Frame{
public static void main(String[]args)
{
Pantalla p=new Pantalla();
JOptionPane.showMessageDialog(null,"bienvenido sistema de algo");
}
public Pantalla()
{
this.setSize(1600,900);
setBackground(new Color(200,0,180));
this.setVisible(true);
}
public void paint(Graphics g)
{
g.setColor(new Color(255,0,0));
g.drawString("Hola",400,100);
g.drawLine(400,100,800,100);
g.drawLine(500,150,450,200);
g.drawLine(500,150,550,200);
g.drawLine(350,100,200,250);
}
}
Здравствуйте, хотя вы используете метод drawLine, другой альтернативой может быть использование drawPolygon, метода, которому вы напрямую передаете координаты и количество точек.
Например, чтобы получить координаты, вы можете базировать плоскость, как показано на следующем изображении:
Для получения дополнительной информации о методе drawPolygon https://docs.oracle.com/javase/8/docs/api/java/awt/Graphics.html#drawPolygon-int:A-int:A-int-
Верхняя левая сторона — это точка (0,0), то есть начальная точка
Чтобы ответить на ваш вопрос, приведу пример:
то эта инструкция нарисует что-то вроде этого:
Я рекомендую вам сделать многоугольник с помощью программирования, а затем раскрасить его:
Таким образом, вы можете легко изменить размер, положение, наклон, сделать копии и т. д. Представьте себе, например, ручное вычисление точек для 5 восьмиконечных звезд... безумие.
Поскольку центр полигона теперь (с координатами относительно ширины и высоты кадра), вы можете попробовать изменить размер окна, и вы увидите красивое движение звезды.
Чтобы было лучше видно предлагаю почистить экран в начале метода с
fillRect
а то предыдущий закрасится.Я прикрепляю вывод добавления этого кода к вашему: