using System;
using System.Drawing;
using System.Drawing.Imaging;
class Program
{
static void Main()
{
int width = 1000;
int height = 1000;
using (Bitmap bmp = new Bitmap(width, height))
using (Graphics g = Graphics.FromImage(bmp))
{
g.Clear(Color.White);
int cell = 100;
// ---------------------------
// 100pxチェッカーパターン
// ---------------------------
for (int y = 0; y < height; y += cell)
{
for (int x = 0; x < width; x += cell)
{
bool dark = ((x / cell) + (y / cell)) % 2 == 0;
using (Brush b = new SolidBrush(
dark ? Color.FromArgb(245, 245, 245) :
Color.FromArgb(220, 220, 220)))
{
g.FillRectangle(b, x, y, cell, cell);
}
}
}
using (Pen pen1 = new Pen(Color.FromArgb(230,230,230),1))
using (Pen pen10 = new Pen(Color.FromArgb(180,180,180),1))
using (Pen pen100 = new Pen(Color.Red,2))
using (Font font = new Font("Arial", 10))
{
// ---------------------------
// 縦線
// ---------------------------
for (int x = 0; x < width; x++)
{
if (x % 100 == 0)
g.DrawLine(pen100, x, 0, x, height);
else if (x % 10 == 0)
g.DrawLine(pen10, x, 0, x, height);
else
g.DrawLine(pen1, x, 0, x, height);
}
// ---------------------------
// 横線
// ---------------------------
for (int y = 0; y < height; y++)
{
if (y % 100 == 0)
g.DrawLine(pen100, 0, y, width, y);
else if (y % 10 == 0)
g.DrawLine(pen10, 0, y, width, y);
else
g.DrawLine(pen1, 0, y, width, y);
}
// ---------------------------
// 座標表示
// ---------------------------
for (int x = 0; x < width; x += 100)
{
g.DrawString($"x={x}", font, Brushes.Blue, x + 3, 3);
}
for (int y = 0; y < height; y += 100)
{
g.DrawString($"y={y}", font, Brushes.Green, 3, y + 3);
}
// ---------------------------
// 交点マーカー
// ---------------------------
for (int y = 0; y < height; y += 100)
{
for (int x = 0; x < width; x += 100)
{
g.FillEllipse(Brushes.Red, x - 2, y - 2, 4, 4);
}
}
}
bmp.Save("debug_grid_1000.png", ImageFormat.Png);
}
Console.WriteLine("デバッグ画像生成完了");
}
}