#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 и был дан тот же совет.