Przeczytałem ten artykuł: generating/creating hexagon grid in C. Ale wygląda na to, że zarówno autor, jak i osoba udzielająca odpowiedzi już ją porzuciły.Jak rysować/zarządzać siatką sześciokątną?
√(hexagonSide - hexagonWidth * hexagonWidth)
: Co to jest hexagonSide i hexagonWidth? Czy to nie będzie < 0 (tak nie można obliczyć pierwiastka kwadratowego).
Czy mogę umieścić sześciokąt w prostokącie? Trzeba utworzyć siatkę tak:
jeszcze jedno, w jaki sposób można zorganizować moją tablicę do przechowywania danych, a także uzyskać komórki, które znajdują się obok jednej komórce?
Nigdy nie uczyłem się o sześciokącie, więc nic o tym nie wiem, ale mogę łatwo nauczyć się czegoś nowego, więc jeśli możesz wyjaśnić lub dać mi wskazówkę, mogę to zrobić sam.
Rozwiązanie to wymagałoby nic więcej niż trochę geometrii/trygonometrii. Kąty na wierzchołku sześciokąta wynoszą 360/3 lub 120 stopni. Dzięki tym informacjom i zastosowaniu metod biblioteki Java Math (choć należy zwrócić uwagę, aby zmienić stopnie na radiany), powinieneś być w stanie to narysować bez użycia innego kodu. Najpierw przeprowadź pracę z diagramami na papierze przed zatwierdzeniem kodu do IDE. Uważam, że najlepiej jest myśleć o sześciokącie jako sześciu równobocznych trójkątach, ale rób wszystko, co najlepiej dla ciebie działa. Potem wróć z kodem, jeśli utkniesz, a my z chęcią Ci pomożemy! –
Nie jestem pewien, o czym mówił facet w linku, ale podstawowa trygonometria powie ci, że bok sześciokąta, s, jest powiązany z jego wysokością przez s * pierwiastek kwadratowy z 3 lub w Javie * Math.sqrt (3); ' –
Zobacz ten post, jak znaleźć sąsiadów http://stackoverflow.com/questions/6661169/finding-adjacent-neighbors-on-a-xxagonal-grid – Buhb