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

アンチエイリアシングが必要ない場合はブレゼンハムのアルゴリズムを、必要な場合はXiaolin-Wuのアルゴリズムから選択するアルゴリズムがいくつかあります。

于 2012-05-10T05:56:12.360 に答える