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'0' 應該是在一個窗口X的中心通過ý與它周圍的環加入順序的。在Java中自動生成一個六角形網格
從理論上講,我認爲,我的數學應該是健全的,但是某些地方會出現大幅度的錯誤,因爲它是這樣做的。
https://www.dropbox.com/s/suj282lnkmxn0g1/hexagons.bmp
他們剛進去的對角線向下行。低分辨率圖像道歉!
任何人都可以幫助我修復我的代碼和/或指出數學中明顯的失敗嗎?如果需要,將提供整個程序!
代碼的編譯版本總是幫助別人來幫助你。 [SSCE](http://sscce.org/) – PopoFibo
一個網格是二維的,並且需要兩個for循環(你可以用一個具有一些不可破譯的數學來做)。一個for循環應該移動x座標,另一個應該移動六邊形中心的y座標。 – Teepeemm