LCD画线函数求教
void Glib_Line(int x1,int y1,int x2,int y2,int color){
int dx,dy,e;
dx=x2-x1;
dy=y2-y1;
if(dx>=0)
{
if(dy >= 0) // dy>=0
{
if(dx>=dy) // 1/8 octant
{
e=dy-dx/2;
while(x1<=x2)
{
PutPixel(x1,y1,color);
if(e>0){y1+=1;e-=dx;}
x1+=1;
e+=dy;
}
}
这是e=dy-dx/2;这个用意是什么?这个算法怎么理解,谢谢指教 麻烦高手指教下啊 Bresenham直线演算法的判断语句,有兴趣自己去看下Bresenham直线演算法 我看了这个演算法,对这个程序还是一头雾水 这个函数好像用到的是中点画线法,跟Bresenham直线演算法有点区别 e=dy-dx/2其实是由 e=2dy-dx演变而来,e是误差函数,只判断正负;若为正,则表明y的真实值更接近于yi+1;若为负,则接近于yi
注:
e=[(yi+1)-y]-yi]
页:
[1]