如何画线(斜线)?

时间:2012-05-10 05:49:37

标签: c++ algorithm line-drawing

如何绘制非正交线?

如果我们有一条正交线,那很简单:

考虑X1 = 100,Y1 = 80;并且X2 = 100,Y2 = 185;

所以我们在这一行上有这样的东西。

for(nRow = Y1; nRow < Y2; nRow++)
{
   for(nCol = X1; nCol < X2; nCol++)
   {
     nPixPos = nRow*nEffectiveWidth+nCol*3;

     Image[nPixPos] = 0 ; /// Image -> unsigned char * (BUFFER) || 0 -> Black COLOR
     Image[nPixPos+1] = 0 ;
     Image[nPixPos+2] = 0 ;
  }
}

如果我想绘制非正交线,例如:

X1 = 100,Y1 = 80且X2 = 115,Y2 = 185

我如何构建一个循环来画这条线?

1 个答案:

答案 0 :(得分:3)

如果您不想要抗锯齿,可以选择一些算法我建议Bresenham's algorithm,如果您不想要Xiaolin-Wu's