c++ - 如何画线(斜线)?

标签 c++ algorithm line-drawing

如何绘制非正交线?

如果我们有一条正交线,那就很简单了:

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

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

最佳答案

您有几种算法可供选择我建议 Bresenham's algorithm如果你不想抗锯齿和Xiaolin-Wu's如果你这样做。

关于c++ - 如何画线(斜线)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10528201/

相关文章:

iphone - 开放式GL-ES 2.0 : Drawing a simple line

c++ - 对位移位行为的质疑

javascript - 平铺面积估计

algorithm - 如何在 SPARC 汇编中计算除法余数?

algorithm - 确定位于四边形内部或四边形上的积分坐标的数量?

python - 如何在 pandas 中绘制类似 "eye diagram"的图?

c++ - 为什么 numeric_limits<int>::max() > numeric_limits<int>::infinity()?

c++ - SDL_WINDOWEVENT_SIZE_CHANGED 和 SDL_WINDOWEVENT_RESIZED 不工作?

c++ - 如何有条件地将文件包含到 Makefile 中?

algorithm - 对称 DDA 是什么意思?