У меня есть пользовательский элемент управления WinForms, и я пытаюсь сделать 15 строк из 15 квадратов. Если размер изменения управления, то квадраты должны получить меньше, но все равно есть 15 строк из 15 квадратов, как этот шаблон:Создание квадратной сетки 15x15 в пользовательском элементе управления
OOOOOOOOOOOOOOO
OOOOOOOOOOOOOOO
OOOOOOOOOOOOOOO
OOOOOOOOOOOOOOO
OOOOOOOOOOOOOOO
OOOOOOOOOOOOOOO
OOOOOOOOOOOOOOO
OOOOOOOOOOOOOOO
OOOOOOOOOOOOOOO
OOOOOOOOOOOOOOO
OOOOOOOOOOOOOOO
OOOOOOOOOOOOOOO
OOOOOOOOOOOOOOO
OOOOOOOOOOOOOOO
OOOOOOOOOOOOOOO
Я пытаюсь использовать ClientSize.Width
и ClientSize.Height
разделить на 15, но его не выходит точно вправо. Любая помощь с этим алгоритмом была бы оценена!
Это, кстати, на C#.
Вот код, у меня есть:
графика г = e.Graphics;
g.DrawRectangle(Pens.Black, 0, 0, ClientSize.Width - 1, ClientSize.Height - 1);
if (ClientSize.Width > ClientSize.Height)
{
int ndx = (int)Math.Ceiling(ClientSize.Height/15f);
for (int x = 0; x < ClientSize.Width; x += ndx)
{
for (int y=0 ; y<ClientSize.Height; y+=ndx)
{
g.DrawLine(Pens.Black, x, y, x + ndx, y);
g.DrawLine(Pens.Black, x, y, x, y + ndx);
}
}
}
else
{
int ndx = (int)Math.Ceiling(ClientSize.Width/15f);
for (int x = 0; x < ClientSize.Width; x += ndx)
{
for (int y = 0; y < ClientSize.Height; y += ndx)
{
g.DrawLine(Pens.Black, x, y, x + ndx, y);
g.DrawLine(Pens.Black, x, y, x, y + ndx);
}
}
}
g.Dispose();
Ну, что значит «не выходит точно вправо»? (* Полезно * описание проблемы * и * код, пожалуйста) –
«Не получается точно вправо» означает, что при изменении размера пользовательского элемента в конце, как правило, есть дополнительная строка или отсутствие линии в конце – Icemanind
Если деление не является совершенным будет небольшая разница. Однако, похоже, это вызвано ошибкой округления. Я бы рекомендовал всегда стрелять по * нижней стороне, округляя вниз, а затем используя это (интегральное) значение как множитель в цикле. Помните, что каждая ячейка сетки должна включать в себя нижний правый край (при рисовании), а верхний левый край всей сетки должен учитываться при начальных вычислениях общего размера. –