|
发表于 2003-9-16 23:49:00
|
显示全部楼层
Re:刚刚写了一个画线段的函数,不知道对错,望高手指教~~
// -------------------------------------------------------
// Name: DrawLine()
// Describe: 绘线(基于Buffer)
// -------------------------------------------------------
HRESULT CDisplay: rawLine( LP_BITMAPX pBitmap, int nBeginX, int nBeginY, int nEndX, int nEndY, PIXEL Color )
{
#if _DEBUG
ASSERT(pBitmap);
ASSERT(pBitmap->GetBuffer());
#endif
register int t;
int distance;
int x = 0, y = 0, delta_x, delta_y, incx, incy;
delta_x = nEndX-nBeginX;
delta_y = nEndY-nBeginY;
if(delta_x > 0)
incx = 1;
else if(delta_x == 0)
incx = 0;
else
{
delta_x = -delta_x;
incx = -1;
}
if(delta_y > 0)
incy = 1;
else if(delta_y == 0)
incy = 0;
else
{
delta_y = -delta_y;
incy = -1;
}
if(delta_x > delta_y)
distance = delta_x; /* **** */
else
distance = delta_y;
for(t=0; t<distance+2; t++)
{
// pBitmap->m_pBuffer[nBeginX + nBeginY * pBitmap->m_nPitchWidth] = Color;
DrawPixel(pBitmap, nBeginX, nBeginY, Color);
x += delta_x;
y += delta_y;
if(x > distance)
{
x -= distance;
nBeginX += incx;
}
if(y > distance)
{
y -= distance;
nBeginY += incy;
}
}
return S_OK;
}
这是一段hoho里面的画线函式,不知道对你有没有用。
你上面的那段代码可以自己执行测试一下才能知道对错。 |
|