設定兩個坐標點(X0,Y0),(X1,Y1),畫一條斜線。
斜線方程為Y=aX+b,根據兩個坐標點求出a,b
用for,從X0到X1循環,根據方程計算Y0到Y1,得出若干個點的坐標,然后通過坐標描點,怎么畫出來是一條直線呢?
部分代碼如下:
void Drawline(uchar X0, uchar Y0, uchar X1 ,uchar Y1, uchar Color)//畫斜線
{
int a, b ;
uchar incx, incy ;
////////////////////////
if(X0>X1)
{
incx=X0;
X0=X1;
X1=incx;
incy=Y0;
Y0=Y1;
Y1=incy;
}
a=(Y0-Y1)/(X0-X1);
b=Y0-a*X0;
for(;X0<X1+1;X0++)
{
Y0=a*X0+b;
Draw_dots( X0, Y0, Color ) ;
}
}
|