//
By rappizit@yahoo.com.cn
// 2007-10-15 第 2 版
#define ABS(a) (a >= 0 ? a : -a)
#define SWAP(a, b) {int t = a; a = b; b = t;}
// 改进的 Bresenham 画线算法程序
// 最后一个形参是画图函数 drawpixel (int x, int y, int color) 的指针,在不同运行环境下调用不同的画图函数
void IntBresenhamline ( int x0, int y0, int x1, int y1, int color, void ( * drawpixel)( int , int , int ))
{
int dx = x1 - x0, dy = y1 - y0;
if (ABS(dx) >= ABS(dy))
{
if (x0 > x1)
{
SWAP(x0, x1);
SWAP(y0, y1);
dx = - dx;
dy = - dy;
}
if (dy >= 0 )
{
// 直线的倾斜角位于 [0, pi / 4]
for ( int x = x0, y = y0, e =
// 2007-10-15 第 2 版
#define ABS(a) (a >= 0 ? a : -a)
#define SWAP(a, b) {int t = a; a = b; b = t;}
// 改进的 Bresenham 画线算法程序
// 最后一个形参是画图函数 drawpixel (int x, int y, int color) 的指针,在不同运行环境下调用不同的画图函数
void IntBresenhamline ( int x0, int y0, int x1, int y1, int color, void ( * drawpixel)( int , int , int ))
{
int dx = x1 - x0, dy = y1 - y0;
if (ABS(dx) >= ABS(dy))
{
if (x0 > x1)
{
SWAP(x0, x1);
SWAP(y0, y1);
dx = - dx;
dy = - dy;
}
if (dy >= 0 )
{
// 直线的倾斜角位于 [0, pi / 4]
for ( int x = x0, y = y0, e =