是这样的:首先,创建一幅图像:IplImage *img = cvCreateImage(cvSize(900, 600), IPL_DEPTH_8U, 1) 然后,采用Bresenham算法在上面划线: for(i = 1;i< height; i+= 100)
{
scLine(img, scPoint(100, i),scPoint(width, i), width, height, 255);
scLine(img, scPoint(i, 100),scPoint(i, width), width, height, 0);
}
然后运行结果如下图所示:这感觉左上角是坐标,横向是y轴,竖向是x轴了呀~~~~ 为什么会这样?
==============================================================================================================
Bresenham算法,我用的是 这个网页上的 
http://www.cnblogs.com/pheye/archive/2010/08/14/1799803.html
我的是:
void scLine(IplImage *img, cvPoint p1, cvPoint p2, int width, int height, int  linecolor)
{
int x1 = p1.x;
int y1 = p1.y;
int x2 = p2.x;
int  y2 = p2.y; int dx = x2 - x1;
int dy = y2 - y1;
int ux = ((dx > 0) << 1) - 1;//x的增量方向,取或-1
int uy = ((dy > 0) << 1) - 1;//y的增量方向,取或-1
int x = x1, y = y1, eps;//eps为累加误差 eps = 0;dx = abs(dx); dy = abs(dy);  if (dx > dy) 
{
for (x = x1; x != x2; x += ux)
{
img->imageData[x * img->widthStep + y] = linecolor;//SetPixel(img, x, y);
eps += dy;
if ((eps << 1) >= dx)
{
y += uy;
eps -= dx;
}
}
}
else
{
for (y = y1; y != y2; y += uy)
{
img->imageData[x * img->widthStep + y] = linecolor;//SetPixel(img, x, y);
eps += dx;
if ((eps << 1) >= dy)
{
x += ux; 
eps -= dy;
}
}
}             
}