public void paintComponent(Graphics g)
{
super.paintComponent(g);
for (int n = 0; n < 13; n++)
{
double hexCentX = x/2+(3*u*n*Math.cos(Math.PI/3));
double hexCentY = y/2+(u*n*Math.sin(Math.PI/3));
Polygon sn = new Polygon();
for (int i = 0; i < 6; i++)
sn.addPoint((int) (hexCentX + u * Math.cos(i * Math.PI / 3)),
(int) (hexCentY + u * Math.sin(i * Math.PI / 3)));
g.drawPolygon(sn);
g.drawString(Integer.toString(n), (int)hexCentX, (int)hexCentY);
}
}
六角形のグリッドを自動的に構築するために何かを一緒にスクリプト化しようとしています。Hexagon は任意のサイズuであり、Hexagon'0' はx x y yのウィンドウの中心にあり、その周りのリングに連続したものが追加されます。
理論的には、私の数学は正しいはずだと思いますが、代わりにこれを行うため、どこかで何かが大幅に間違っています。
https://www.dropbox.com/s/suj282lnkmxn0g1/hexagons.bmp
それらは斜め下の線に沿って進みます。低画質でごめんなさい!
私のコードを修正したり、数学の明らかな失敗を指摘したりするのを手伝ってくれる人はいますか? 必要に応じてプログラム全体を提供します!