在向量的向量中创建轮廓(框)

时间:2018-12-18 15:03:57

标签: c++ stdvector

我将值存储在2d向量中,并进行了一系列循环和if语句,将向量绘制为黑色。我将如何修改它以产生更粗的轮廓?

这就是我拥有的

int NumberOfRows = 49;
int NumberOfColumns = 36;
for (int k = 0; k < x; k++) 
{
    for (double i = results[k][1]; i < NumberOfRows + results[k][1]; i++) 
    {
        for (double j = results[k][2]; j < NumberOfColumns + results[k][2]; j++) 
        {
            if ((i == results[k][1]) || (i == results[k][1] + 48)) {
                a.matrix[i][j] = 1.00;
            }
            else 
            {
                if ((j == results[k][2]) || (j == results[k][2] + 35))
                    a.matrix[i][j] = 1.00;
            }
        }
    }
}

1 个答案:

答案 0 :(得分:0)

类似这样的东西

       if (i - results[k][1] < 2 || i - results[k][1] > NumberOfRows - 2) {
            a.matrix[i][j] = 1.00;
       }
       else if (j - results[k][2] < 2 || j - results[k][2]  > NumberOfColumns - 2)) {
            a.matrix[i][j] = 1.00;
       }

其中2是所需宽度。

因此,这可以通过从左边缘i - results[k][1]中减去坐标来实现。如果那是< 2,那么我们就在左边缘附近;如果那是> NumberOfRows - 2,那么我们就在右边缘附近。顶部和底部边缘的处理类似。