Вот весь код подпрограммы, там нету эффекта от шага(всегда получается то же самое), цикл идет максимум ~50-60 раз. 
 Код
 
 void circle1::paint(QPainter *painter) 
 { 
     painter->save(); 
     int f=5; 
     //параметры окна 
     int x=width(); 
     int y=height(); 
     int z=width()/214; 
     //устанавливаем цвет контура и кисти 
     QPen pen = QPen(Qt::NoPen); 
     QRgb red=qRgba(255,0,0,f); 
     QRgb black=qRgba(0,0,0,f); 
     QBrush white_brush = QBrush(Qt::white); 
     QBrush black_brush = QBrush(QColor::fromRgba(qRgba(0,0,0,255))); 
     QBrush red_brush = QBrush(QColor::fromRgba(qRgba(255,0,0,f))); 
     painter->setPen(pen); 
     //вычисляем кол-во зон Фринеля 
     double m; 
     m=1/(_distance_to_the_screen*0.01)+(1/((_distance_to_the_screen2-_distance_to_the_screen)*0.01)); 
     m=m*_radius*_radius*0.000001; 
     m=m/(_wavelength*0.000000001); 
     //выделяем целую часть числа, рисуем минимумы и максимумы 
     int k=int(m); 
     if(k!=0) 
     { 
         m=(x/2-2*z)/k; 
         if(m/k>=0.5)m=int(m)-1; 
         for(int i=1;i<=k;i++) 
         { 
             f=f+5; 
             red=qRgba(255,0,0,f); 
             black=qRgba(0,0,0,f); 
             red_brush.setColor(red); 
             black_brush.setColor(black); 
             if(i%2==1) 
             { 
                 painter->setBrush(red_brush); 
                 painter->drawEllipse(2+m*(i-1),2+m*(i-1),x-4-m*(i-1)*2,y-4-m*(i-1)*2); 
             } 
             else 
             { 
                 painter->setBrush(black_brush); 
                 painter->drawEllipse(2+m*(i-1),2+m*(i-1),x-4-m*(i-1)*2,y-4-m*(i-1)*2); 
             } 
         } 
     } 
     else 
     { 
         int i=0; 
         painter->setBrush(red_brush); 
         painter->drawEllipse(2+m*(i-1),2+m*(i-1),x-4-m*(i-1)*2,y-4-m*(i-1)*2); 
     } 
     axis(painter); 
     painter->restore(); 
 }