1
C++ win32中的這個中點算法不起作用。它沒有畫任何東西或只畫水平線。我在做什麼錯誤?繪製線C++的中點算法
void midPoint(HDC hdc)
{
double dx = end.getXPoint()-start.getXPoint();
double dy = end.getYPoint()-start.getYPoint();
double x = start.getXPoint();
double y = start.getYPoint();
SetPixel(hdc,x,y,color);
double d = dx - (dy/2);
double d1 = dx;
double d2 = abs(dx-dy);
while(x < end.getXPoint())
{
d = abs((((y+0.5)-start.getYPoint())*dx) - (((x+1)-start.getXPoint())*dy));
if(d < 0)
{
x = x+1;
y = y+1;
}
else
{
x = x+1;
}
SetPixel(hdc,x,y,color);
}
}
我做了,但它也沒有工作 – Alyafey 2013-03-06 19:31:51
是的,這只是第一個錯誤。你可以發佈一個鏈接到算法? – qPCR4vir 2013-03-06 19:38:15
你計算d1和d2但從不使用它。 ?? – qPCR4vir 2013-03-06 19:40:47