ODD / EVEN GRID CENTERS

直径が奇数・偶数で、中心位置と対称性が変わる理由

格子上の円では、セルの数が奇数か偶数かで幾何学的な中心の位置が変わります。直径5と6の図を使い、本サイトの設計台がどこを中心として計算するかを説明します。

先に要点

直径5なら中心は中央の1セル、直径6なら中央4セルが囲む交点です。どちらも中心に対して対称にできますが、「真ん中に1個置けるか」は異なります。

セルの中心座標で決まる

このツールでは、幅 d の格子に並ぶセルを 0 から d−1 の座標で数えます。中心座標は (d−1)÷2 です。

このツールの円は、中心座標 (cx, cy) と軸半径 (rx, ry) を使い、((x−cx)/rx)² + ((y−cy)/ry)² ≤ 1 を満たすセルを選びます。奇数・偶数で中心座標そのものが変わるので、同じ判定式でも残るセルの並びが異なります。

格子の座標を中心の反対側へ移すときは d−1−x(縦方向は d−1−y)になります。直径5では中心セルが自分自身に重なり、直径6では中央付近の4セルが対になって中心を囲みます。

直径5と直径6のセル図を比べる

直径5・中心座標 (2, 2)
..#..
.###.
#####
.###.
..#..

中央の1セルが中心に一致。塗りつぶしは13セルです。

直径6・中心座標 (2.5, 2.5)
......
.####.
.####.
.####.
.####.
......

中心は中央4セルの間。塗りつぶしは16セルです。

どちらの図も、上下左右を入れ替えてもセルの配置が対応します。5と6では中心が違うため、同じ「中心セル」を期待して設計すると見え方がずれます。中央に1セル置く形を求めるなら奇数、中央の4セルを囲む形なら偶数が目安です。

ツールで確かめる手順

  1. 設計台で形状を「円」にします。
  2. 直径に5を入れ、中央のセルと個数を確認します。
  3. 直径を6に変え、中心の位置と配置の変化を比べます。
  4. 必要ならSVGを書き出し、格子とセルを拡大して確認します。

この計算モジュールの自動テストは、複数の奇数・偶数直径で中心対称性を確認し、真円を90度ずつ回転したセル集合が変わらないことも確認します。ここでいう対称性は格子計算上の性質で、実際のゲームや物理的な施工結果を試験したものではありません。

この例を使うときの注意

図は本サイトの現在の計算方式によるサンプルです。別の円生成器では半径や境界セルの丸め方が異なるため、同じ直径でもセル数が変わることがあります。設計台の入力は1〜101の整数です。

偶数サイズの中心は格子の交点にあり、1つのブロックを中心として指定することはできません。中心に印を置く必要がある設計では、奇数・偶数を決める前に、中央に1セル必要か、中央の4セルを基準にするかを選んでください。