これは私が、六角形を描く方法です:データを表現するために
public Hexagon(float pX, float pY, float pSize) {
super(pX, pY, pSize, pSize);
// setColor(1, 0, 0);
setAlpha(0);
float x1, x2, y1, y2;
float lineWidth = 3;
x1 = 0; y1 = pSize/2;
x2 = pSize/4; y2 = (pSize * ((2 - (float)Math.sqrt(3))/4)); // Done
Line line = new Line(x1, y1, x2, y2);
line.setLineWidth(lineWidth);
attachChild(line);
x1 = x2; y1 = y2;
x2 = pSize * .75f; // Done
line = new Line(x1, y1, x2, y2);
line.setLineWidth(lineWidth);
attachChild(line);
x1 = x2; y1 = y2;
x2 = pSize; y2 = pSize/2; // Done
line = new Line(x1, y1, x2, y2);
line.setLineWidth(lineWidth);
attachChild(line);
x1 = x2; y1 = y2;
x2 = pSize * .75f; y2 = pSize - (pSize * ((2 - (float)Math.sqrt(3))/4)); // Done
line = new Line(x1, y1, x2, y2);
line.setLineWidth(lineWidth);
attachChild(line);
x1 = x2; y1 = y2;
x2 = pSize/4; // Done
line = new Line(x1, y1, x2, y2);
line.setLineWidth(lineWidth);
attachChild(line);
x1 = x2; y1 = y2;
x2 = 0; y2 = pSize/2; // Done
line = new Line(x1, y1, x2, y2);
line.setLineWidth(lineWidth);
attachChild(line);
touchableArea = new Rectangle(pSize/4, pSize/4, pSize * .75f, pSize * .75f);
touchableArea.setAlpha(0);
attachChild(touchableArea);
}
少し幾何学/三角法以上のものを必要としないだろうこれを行うことができると思います。六角形の頂点の角度はすべて360/3度または120度です。この情報とJava Mathライブラリメソッドの使用(度をラジアンに変更することに注意してください)を使用すると、他のコードを使用せずに簡単にこれを描画できます。 IDEにコードをコミットする前に、まず紙の上でダイアグラムを操作してください。私は六角形を6つの正三角形と考えるのが最良だと思っていますが、あなたに一番良いものは何でもしてください。あなたが立ち往生している場合は、あなたのコードで戻ってきてください、そして私たちは喜んで助けてくれるでしょう! * –
私はリンク内の男が話していたかわからないんだけど、基本的な三角法がs '*平方3のルートまたはJavaで六角、Sの側は、sがその高さに関連していることを教えてくれますMath.sqrt(3); ' –
が隣人を見つける方法についてのこの記事を参照してくださいhttp://stackoverflow.com/questions/6661169/finding-adjacent-neighbors-on-a-hexagonal-gridウナギの – Buhb