设定两个坐标点(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 ) ;
}
}
|