Sechseckige Gitter, wie finden Sie die Sechskant-ein Punkt ist?

Habe ich eine Karte aus Zeilen und Spalten von SechseckenSechseckige Gitter, wie finden Sie die Sechskant-ein Punkt ist?

Dies ist nicht ein Bild von der hex-Karte, die ich verwende, verwendet aber die gleiche Größe und Form Sechsecke

Ich muss in der Lage sein zu sagen, die man mit der Maus ist vorbei, wenn der Benutzer klickt,

Jedes Sechseck wird repräsentiert durch eine Instanz einer "Kachel" - Klasse, allerdings ist dieser nicht für jeden Standort spezifische Daten, oder auch ein polygon aus, also im Grunde der einzige Weg, zu sagen, wo ein bestimmtes Sechseck ist, ist es zu wissen, die position in der 2D-array.

Habe ich verwendet einem quadratischen raster vor, und es war relativ einfach, herauszufinden, welcher Platz wurde ausgewählt, da die Pixel sind auch quadratische,

        //example where each square is 10 by 10 pixels:

private void getClickedSquare(MouseEvent me)
    {
        int mouseX = me.getX();//e.g. 25
        int mouseY = me.getY();//e.g. 70

        int squareX= (int) (mouseX /10);//in this case 2
        int squareY= (int) (mouseY /10);//in this case 7

//then to access the tile I would do

        map.squares[squareX][squareY].whatever();
    }

Aber ich bin mir auch nicht sicher, wo Sie anfangen mit Sechsecken, hat jemand irgendwelche Erfahrungen?

Kann ich nicht verwenden, Polygone (Java), als wenn ich auf die Karte um auf dem Bildschirm, und die Erhöhung der Größe werde ich Probleme mit der Aktualisierung Unmengen von Polygonen jedes Bild. Obwohl dann könnte ich nur überprüfen, ob ein Punkt in der map tile Polygone!

Im moment die Sechsecke dargestellt sind nur BufferedImages.

Wenn Sie wissen möchten, mehr Informationen bitte Fragen,
Vielen Dank für deine Zeit 😀

InformationsquelleAutor der Frage Troyseph | 2011-10-09

Schreibe einen Kommentar