private int[] fillCircleBits() {
        int d = getD();
        int[] circleBits = new int[d*d];
        prepareBits(circleBits);

        int x = -r;
        int y = 0;

        int F = 1 - r;
        int delta_Fs = 3;
        int delta_Fd = 5 - 2*r;
        while( x + y < 0){

            plot8(circleBits, x, y, r);
            if(F > 0){  // diag
                F += delta_Fd;
                x++; y++;
                delta_Fs += 2;
                delta_Fd += 4;
            }
            else { // vert
                F += delta_Fs;
                y++;
                delta_Fs += 2;
                delta_Fd += 2;
            }
        }
        drawCenter(circleBits, r);
        return circleBits;
    }