Я хотел бы нарисовать несколько случайных треугольников и масштабировать их, когда я изменяю размер моего окна.
У меня есть отдельный класс MyTriangle
, который расширяет MyShape
. У меня также есть две переменные: scaleX
и scaleY
. Всякий раз, когда я пытаюсь умножить значения треугольника x
и y
и изменить размер окна, треугольники сходят с ума и внезапно исчезают.
Когда я пытаюсь написать
graphics.fillPolygon(new int[]{(int)(x1*scX),(int)(x2*scX)(int)(x3*scX)}, new int[]{(int)(y1*scY),(int)(y2*scY),(int)(y3*scY), 3);
По какой-то причине в моем окне ничего не происходит.
//from MyShape class:
//scX = window.getWidth()/(double)window.defaultWidth;
//scY = window.getHeight()/ (double)window.defaultHeight;
public class MyTriangle extends MyShape {
int[] x;
int[] y;
public MyTriangle(int x1, int x2, int x3, int y1, int y2, int y3, int red, int green, int blue) {
super(x1, x2, x3, y1, y2, y3, red, green, blue);
this.x=new int[]{x1,x2,x3};
this.y=new int[]{y1,y2,y3};
}
@Override
protected void paintComponent(Graphics graphics) {
super.paintComponent(graphics);
for(int i = 0; i<3; i++){
x[i]=(int)(x[i]*scX);
y[i]=(int)(y[i]*scY);
}
graphics.fillPolygon(x,y,3);
}
Как мне это сделать, чтобы это работало? Такое масштабирование прекрасно работает с прямоугольниками и овалами.