mirror of
https://github.com/libretro/scummvm.git
synced 2024-12-19 08:06:42 +00:00
35 lines
1011 B
C
35 lines
1011 B
C
void droite( integer x, integer y, integer xx, integer yy, integer coul )
|
|
{
|
|
integer step,i;
|
|
real a,b;
|
|
real xr,yr,xro,yro;
|
|
|
|
xr=x; yr=y; xro=xx; yro=yy;
|
|
/*writeln(le_file,'(',x:4,',',y:4,') ==> (',xx:4,',',yy:4,')');*/
|
|
if (abs(y-yy) > abs(x-xx))
|
|
{
|
|
a= (real)((x-xx)) / (y-yy);
|
|
b= ( yr*xro - yro*xr) / (y-yy);
|
|
i=y;
|
|
if (y>yy) step=-1;
|
|
else step=1;
|
|
do {
|
|
putpix(gd, trunc(a*i+b), i, coul);
|
|
i=i+step;
|
|
} while (!(i==yy));
|
|
/*writeln(le_file,'X == ',a:3:3,' * Y + ',b:3:3);*/
|
|
}
|
|
else
|
|
{
|
|
a= (real)((y-yy)) / (x-xx);
|
|
b= ((yro*xr) - (yr*xro)) / (x-xx);
|
|
i=x;
|
|
if (x>xx) step=-1;
|
|
else step=1;
|
|
do {
|
|
putpix(gd,i, trunc(a*i+b), coul);
|
|
i=i+step;
|
|
} while (!(i==xx));
|
|
/*writeln(le_file,'Y == ',a:3:3,' * X + ',b:3:3);*/
|
|
}
|
|
} |