1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
|
int e;
int dx;
int dy;
//CAS DES LIGNES DROITES
if(x1 == x2)
{
if(y2 > y1)
swap(&y1, &y2);
while(y1 >= y2)
{
draw(x1, y1, color);
y1 --;
}
}
if(y1 == y2)
{
if(x2 > x1)
swap(&x1, &x2);
while(x1 >= x2)
{
draw( x1, y1, color);
x1 --;
}
}
//FIN
//CAS OU X2 > X1 ET Y2 > Y1
if ((x2 > x1 && y2 > y1) ||(x2 < x1 && y2 < y1) )
{
if (x1 > x2 && y1 > y2) // CAS OU X2 < X1 et Y2 < Y1
{
swap(&x1, &x2);
swap(&y1, &y2);
}
e = x2 - x1;
dx = e * 2; // 10
dy = (y2 - y1) * 2;
while (x1 <= x2)
{
draw(x1, y1, color);
// printf("X = %d || Y = %d\n",x1, y1);
x1++;
e = e - dy;
if (e <= 0)
{
y1++;
e += dx;
}
}
}
//FIN DE CAS
else if ((x2 < x1 && y2 > y1) || (x2 > x1 && y2 < y1))//CAS OU X2 < X1 ET Y2 > Y1
{
if (x2 > x1 && y2 < y1) //CAS OU X2 > X1 ET Y2 < Y1
{
swap(&x1, &x2);
swap(&y1, &y2);
}
e = x1 - x2;
dx = e * 2;
dy = (y2 - y1) * 2;
while (x2 <= x1)
{
draw(x2, y2, color);
// printf("X = %d || Y = %d\n",x2, y2);
x2++;
if ((e = e - dy) <= 0)
{
y2--;
e = e + dx;
}
}
} |
Partager