Поворот векторов

Есть фигура состоящая из массива векторов Vec2
Код:
public class Vec2 {
    
    public double x, y;

    public Vec2(double x, double y){
        this.x = x;
        this.y = y;
    }
    
    public void norm(){
        double p = 1 / getLong();
        x *= p;
        y *= p;
    }
    
    public double getLong(){
        return Math.sqrt(x * x + y * y);
    }

}
когда поворачиваю все векторы массива размер фигуры уменьшается,почему так происходит и как исправить??
верчу так
Код:
public void rotate(double j){
        double i = Math.toRadians(j);
        for(Vec2 vector : vectors){
            vector.x = (vector.x * Math.cos(i) - vector.y * Math.sin(i));
            vector.y = (vector.x * Math.sin(i) + vector.y * Math.cos(i));
        }
    }
в начале фигура такая
bezymjannyj1.png

после 5-6 поворотов все херится
bezymjannyj2.png
 
Ибо ты меняешь vector.x, а потом в vector.y используешь уже измененный vector.x
 
а всё понял спасибо, если кому интересно так исправил
Код:
public void rotate(double j){
        double i = Math.toRadians(j);
        for(Vec2 vector : vectors){
            double xx = vector.x;
            double yy = vector.y;
            vector.x = (xx * Math.cos(i) - yy * Math.sin(i));
            vector.y = (xx * Math.sin(i) + yy * Math.cos(i));
        }
    }
 
Сверху