检测我最重要的地方

时间:2015-12-17 17:53:32

标签: c# winforms

我需要将表单区域划分为100个迷你表单,然后检测我拥有的所有点数。我怎么能写这个呢?

这是我的代码:

bool isFound;
int[,] tab = new int[10, 10];
double widthX, widthY;
double X, Y;
widthX = (max.X - min.X) / 10.0;
widthY = (max.Y - min.Y) / 10.0;
X = min.X;
Y = min.Y;

foreach (Position pos in positionData)
{
    isFound = false;
    for (int i = 0; i < 10; i++)
    {
        X = min.X;
        for (int j = 0; j < 10; j++)
        {
            if ((pos.X >= X && pos.X < X + widthX) && (pos.Y >= Y && pos.Y < Y + widthY))
            {
                tab[i, j] += 1;
                isFound = true;
                break;
            }
            X += widthX;
        }
        if (isFound) break;
        Y += widthY;
    }
}

Position是一个带有X和Y双变量的结构。我不知道为什么但不是所有的点都在我的标签中表示(例如当我的positionData有10个点时,我的标签只包含4个点)。

1 个答案:

答案 0 :(得分:0)

我认为if (isFound) break;是你的罪魁祸首。当你在一个小方块中找到一个点时,你会在左边的方块中搜索。我认为应该删除这一行(如果我理解你正在尝试做什么)。