(JAVA) Как отличить 2d-объект

#java

#java

Вопрос:

один простой вопрос. Я пытаюсь использовать графический 2d для создания объектов. Мой вопрос в том, как мы можем дифференцировать переменную между 2 объектами. Например, приведенный ниже код;

  public void paintComponent(Graphics g) {
        super.paintComponent(g);
        
         r1 = new Rectangle(10, 10, 50, 30);
         r2 = new Rectangle(450, 10, 50, 30);
        
    
           g.setColor(Color.BLUE);
            g.fillRect(10, 10, 50, 30);
              
            g.setColor(Color.RED);
            g.fillRect(450, 10, 50, 30);
            
    }

public void actionPerformed(ActionEvent e) {

     if (r1.intersects(r2)) {..............
}
  

из приведенного выше кода у меня есть 2 прямоугольные переменные r1 и r2, и я могу сделать «если (r1.пересекается (r2))»
в методе actionPerformed.

Но как насчет приведенного ниже кода при использовании Graphic2d, как я могу различать эти 2 треугольника, чтобы он мог вписаться в «if (r1.intersects (r2))», поскольку существует только одна переменная «lukis», и она используется для создания 2 треугольников. Спасибо.

 public void paintComponent(Graphics g) {
    super.paintComponent(g);
    
    Graphics2D lukis = (Graphics2D) g;
    
    int[] x = {100, 200, 300};
    int[] y = {300, 100, 300};
    
    lukis.setColor(Color.RED);
    lukis.drawPolygon(x, y, 3);
    
    int[] x1 = {600, 700, 800};
    int[] y1 = {300, 100, 300};
    
    lukis.setColor(Color.RED);
    lukis.drawPolygon(x1, y1, 3);
}
  

Комментарии:

1. Не используйте методы drawPolygon() или fileRect(…). Вместо этого вы можете использовать методы draw(Shape) или fill(Shape) . Таким образом, вы можете создать две Shape переменные для рисования ваших треугольников. Затем вы можете использовать contains(...) метод Shape API. Смотрите Игра с фигурами для примера использования объекта Shape для ваших треугольников.

2. (1-) перекрестная публикация: coderanch.com/t/734752/java/java-graphic#3417140 и был дан тот же совет.