私はWinFormsユーザーコントロールを持っており、15個の四角形の15行を描画しようとしています。コントロールのサイズが変更した場合、その後、四角は小さくなるはずですが、それでもこのようなパターン15個の正方形の15行、持っている:ユーザーコントロールで15x15の四角形グリッドを作成
OOOOOOOOOOOOOOO
OOOOOOOOOOOOOOO
OOOOOOOOOOOOOOO
OOOOOOOOOOOOOOO
OOOOOOOOOOOOOOO
OOOOOOOOOOOOOOO
OOOOOOOOOOOOOOO
OOOOOOOOOOOOOOO
OOOOOOOOOOOOOOO
OOOOOOOOOOOOOOO
OOOOOOOOOOOOOOO
OOOOOOOOOOOOOOO
OOOOOOOOOOOOOOO
OOOOOOOOOOOOOOO
OOOOOOOOOOOOOOO
を私は15で分割するClientSize.Width
とClientSize.Height
を使用しようとしたが、そのています正確に正しく出てこない。このアルゴリズムの助けがあれば幸いです!
これはC#であります。
ここで私が持っているコードである。
グラフィックG = 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
分割が完璧でない限り少し違いがあります。ただし、丸め誤差が原因であるようです。 * low *側では常に切り捨てて、その積分値をループの乗数として使用することをおすすめします。各グリッドセルには右下エッジ(描画時)が含まれている必要があり、グリッド全体の左上端が初期合計サイズ計算で考慮される必要があることに注意してください。 –