Рисование треугольника в Java

Итак, часть моего задания - создать класс треугольника, который будет связан с различными кнопками... но я не уверен, как создать его в затмении. Конкретные инструкции говорят это:

Создать класс треугольника

  1. Поля данных: точка [] координаты;
  2. конструкторы
  3. Реализуйте все абстрактные методы, определенные в суперклассе
  4. Получатели и установщики для каждого поля данных
  5. Переопределить метод public void paint(Graphics arg0)

У меня все настроено в других классах.. кроме класса треугольника. Я запутался в том, как создать треугольник, используя массив точек... Нужно ли мне использовать точки x,y или каким-то образом хранить 3 (x,y) пары координат в этом одном массиве переменных координат? Я предполагаю, что для его создания вы бы использовали drawPolygon... но я не уверен. Какие-нибудь советы?

3 ответа

Решение

Вот пример класса для треугольника

public class Triangle {

  private Point[] coords;

  // Null object constructor
  public Triangle() {
    this.coords = null;
  }

  // Constructor with point array
  public Triangle(Point[] coords) {
    this.coords = coords;
  }

  // Constructor with multiple points
  public Triangle(Point a, Point b, Point c) {
    this.coords = new Point[3];
    coords[0] = a;
    coords[1] = b;
    coords[2] = c;
  }

  // The actual paint method
  public void paint(Graphics arg0) {
    // Setup local variables to hold the coordinates
    int[] x = new int[3];
    int[] y = new int[3];
    // Loop through our points
    for (int i = 0; i < coords.length; i++) {
        Point point = coords[i];
        // Parse out the coordinates as integers and store to our local variables
        x[i] = Double.valueOf(point.getX()).intValue();
        y[i] = Double.valueOf(point.getY()).intValue();
    }
    // Actually commit to our polygon
    arg0.drawPolygon(x, y, 3);
  }
}

Не уверен, что именно этот класс должен расширяться, поэтому ничто не помечено как переопределение или что-то еще, и в нем отсутствуют сеттеры и методы доступа, но вы должны быть в состоянии заставить его работать.

Использовать g.drawPolygon это занимает массив PointЭто как аргументы.

Сделал что-то похожее, где я нарисовал многоугольник с трех сторон. Может помочь..

for (int i = 0; i < 3; i++){
  polygon1.addPoint(
    (int) (40 + 50 * Math.cos(i * 2 * Math.PI / 3)),
    (int) (150 + 50 * Math.sin(i * 2 * Math.PI / 3))
  );
}
g.drawPolygon(polygon1);
Другие вопросы по тегам