我尝试使用WM_LBUTTONDOWN
和WM_LBUTTONUP
给出2个点之间的正方形绘制直线(它们为startIndex
和endIndex
提供值) 。当我使用笔和纸进行数学计算时,我总能得到正确的结果,但我的代码中存在某种我无法获得的错误。基本上有一个正方形网格,每个正方形给出一个从0开始的值。
到目前为止,这是我的代码:
int xDiff = endX - startX;
int yDiff = endY - startY;
int steps = xDiff > yDiff ? xDiff : yDiff;
for (int i = steps; i >= 1; i--){
startIndex += (endIndex - startIndex) / i;
startIndex = round(startIndex);
}
直线向上或向下并且以45度角向右倾斜,其他线条碎成碎片。任何帮助都会被疯狂地赞赏。
//----------------------
编辑:该死,我认为我的公式在同样的情况下是错误的。我必须改变我的做法。
//------------------------
最后编辑:感谢您指出了正确的方向,Bresenheim做到了:)
找到了这个惊人的教程:Bresenheim