Рисование треугольника в Java
Итак, часть моего задания - создать класс треугольника, который будет связан с различными кнопками... но я не уверен, как создать его в затмении. Конкретные инструкции говорят это:
Создать класс треугольника
- Поля данных: точка [] координаты;
- конструкторы
- Реализуйте все абстрактные методы, определенные в суперклассе
- Получатели и установщики для каждого поля данных
- Переопределить метод 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);