0

如何绘制非正交线?

如果我们有一条正交线,这很容易:

考虑 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

我将如何构建一个循环来绘制这条线?

4

1 回答 1

3

您有几种算法可供选择,如果您不想要抗锯齿,我建议使用Bresenham 的算法,如果需要,建议使用Xiaolin-Wu 的算法。

于 2012-05-10T05:56:12.360 回答