rendered paste body int Pix_V=255;
int Pix_C=255;
int dx, dy, sx, sy, kl, swap;
long incr1, incr2;
long s; /* Текущее значение ошибки */
long s_max; /* Макс значение ошибки */
int color_tek; /* Текущий номеp оттенка */
int xt;
sx=0;
if ((dx=xk-xn) < 0) {dx=-dx; --sx;} else if (dx>0) ++sx;
sy=0;
if ((dy=yk-yn) < 0) {dy=-dy; --sy;} else if (dy>0) ++sy;
swap=0;
if ((kl=dx) < (s=dy)) {dx=s; dy=kl; kl=s; ++swap;}
s=(long)dx*(long)Pix_V;
incr1=2l*(long)dy*(long)Pix_V;
incr2=2l*s;
s_max=incr2-incr1;
color_tek=Pix_V;
Pix_C=0;
if (dx)color_tek=(int)((((long)Pix_V*(long)dy)/(long)dx)/2l);
for(int i=xn*10; i<xn*10+10; i++)
{
for(int j=yn*10; j<yn*10+10; j++)
{
image->setPixel(i, j, qRgba(0,0,0,Pix_C+color_tek));
}
}
while (--kl >= 0) {
if (s >= s_max) {
if (swap) xn+= sx; else yn+= sy;
s-= incr2;
}
if (swap) yn+= sy; else xn+= sx;
s+= incr1;
if (dx) color_tek= s / dx /2;
for(int i=xn*10; i<xn*10+10; i++)
{
for(int j=yn*10; j<yn*10+10; j++)
{
image->setPixel(i, j, qRgba(0,0,0,Pix_C+color_tek));
}
}
/* Однотонная закраска строки многоугольника макс цветом */
xt=xn;
while (++xt <= xk)
{
for(int i=xn*10; i<xn*10+10; i++)
{
for(int j=yn*10; j<yn*10+10; j++)
{
image->setPixel(i, j, qRgba(0,0,0,Pix_C+Pix_V-1));
}
}
}
}