スキャンラインアルゴリズムを実装している間、私は途中で(またはあなたが言うことができる最初に)立ち往生しています。私はパリティテストに従います。つまり、
for each scanline
edgeCnt = 0;
for each pixel on scanline (l to r)
if (oldpixel->newpixel crosses edge)
edgeCnt ++;
// draw the pixel if edgeCnt odd
if (edgeCnt % 2)
setPixel(pixel);
三角形に頂点 A(10,10)、B(100, 100)、C(200, 30) があるとします。このアルゴリズムの問題は次のとおりです。ポイント A はカウントできません。これをカウントすると、同じ水平線上でエッジが検出されず、A の後の線全体が色付けされるためです。頂点を除外すると、頂点 C の前のピクセルが色付けされますが、スキャンでは頂点が検出されないため、C は検出されず、次に高いラインのエッジが検出されるまでラインの色付けが続けられます。
これに対する標準的な解決策はありますか?