中级会员
 
- 积分
- 362
- 金钱
- 362
- 注册时间
- 2017-10-2
- 在线时间
- 80 小时
|
1金钱
void FlappyBird_Frame_DrawLine( u16 x1, u16 y1, u16 x2, u16 y2 , u16 color )
{
u16 t;
int xerr=0,yerr=0,delta_x,delta_y,distance;
int incx,incy,uRow,uCol;
delta_x=x2-x1; //计算坐标增量
delta_y=y2-y1;
uRow=x1;
uCol=y1;
if(delta_x>0)incx=1; //设置单步方向
else if(delta_x==0)incx=0;//垂直线
else {incx=-1;delta_x=-delta_x;}
if(delta_y>0)incy=1;
else if(delta_y==0)incy=0;//水平线
else{incy=-1;delta_y=-delta_y;}
if( delta_x>delta_y)distance=delta_x; //选取基本增量坐标轴
else distance=delta_y;
for(t=0;t<=distance+1;t++ )//画线输出
{
FlappyBird_Frame_DrawPoint(uRow,uCol,color);//画点
xerr+=delta_x ;
yerr+=delta_y ;
if(xerr>distance)
{
xerr-=distance;
uRow+=incx;
}
if(yerr>distance)
{
yerr-=distance;
uCol+=incy;
}
}
}
|
最佳答案
查看完整内容[请看2#楼]
自己去看一下原理吧~http://www.cnblogs.com/gamesky/archive/2012/08/21/2648623.html
|