void Figure::bresenham1() { for (int i=0; i dx) { int t = dx; dx = dy; dy = t; f=1; } int I,m,w; I = 255; m = 2*I*dy; w = 2*dx*I - m; int e = m / 2; RGBA* row = image + (SCREEN_WIDTH ) * y1; row[x1].r = /*color.r - I +*/( f==1 ?((w-e)<0 ? 0 : w-e)/(2*dx) : e / (2*dx)); row[x1].g = color.g; row[x1].b = color.b; row[x1].a = color.a; for (int j = 0; j< dx; j++) { if (e>=w) { if (f) { x1+=sx; } else y1+=sy; e-=w; } else e+=m; if (f) { y1+=sy; } else x1+=sx; RGBA* row = image + (SCREEN_WIDTH ) * y1; row[x1].r = /*color.r - I +*/( (f==1) != ((sx*sy)==-1) ? I - e/(2*dx) : e / (2*dx)); row[x1].g = color.g; row[x1].b = color.b; row[x1].a = color.a; } } }