Autor Wątek: Algorytm na siatkę punktów trójkątów równobocznych  (Przeczytany 1499 razy)

Offline lukaszsa

  • Użytkownik

# Marzec 05, 2016, 13:34:34
Przekopuję internet i nie mogę znaleźć prostego algorytmu.
Sam próbuję go napisać, ale uznałem, że szybciej będzie znaleźć już na pewno gotowe rozwiązania.

Jednak nie mogę znaleźć.
Zna ktoś algorytm na współrzędne punktów siatki trójkątów równobocznych?
Może ktoś wie gdzie znaleźć taki algorytm. Mam parę pomysłów na rysowanie takiej siatki, ale najpierw trzeba narysować jeden równoboczny trójkąt a z tym już gorzej.

Na razie wykorzystałem funkcje z API SFML do narysowania pierwszego trójkąta:
sf::Vector2f getPoint(std::size_t index, float m_pointCount, float m_radius)
{
m_pointCount = 3;
static const float pi = 3.141592654f;

float angle = index * 2 * pi / m_pointCount - pi / 2;
float x = std::cos(angle) * m_radius;
float y = std::sin(angle) * m_radius;

return sf::Vector2f(m_radius + x, m_radius + y);
}
« Ostatnia zmiana: Marzec 05, 2016, 13:42:40 wysłana przez lukaszsa »

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline CheshireCat

  • Użytkownik

  • +1
# Marzec 05, 2016, 14:41:18
Nie wiem czy dobrze zrozumiałem, chcesz zbudować siatkę z takich trójkątów i potrzebujesz współrzędnych wierzchołków tej siatki?

Nie wystarczy więcej zrobić sobie pętli po X oraz Y startując z jakiegoś wybranego rogu siatki?
- zmienną x przesuwasz o długość boku trójkąta 'a', z tym, że w nieparzystych rzędach masz offset względem X startowego o a/2 (dodatni lub ujemny w zależności jak chcesz narysować siatkę - analogicznie jak z heksami)
- zmienną y przesuwasz o wysokość trójkąta 'h'

Nie wiem czy o ten problem chodziło, ale zadanie wydaje się banalne - bardzo dobre na rozmowę kwalifikacyjną o pracę :)

Offline lukaszsa

  • Użytkownik

# Marzec 05, 2016, 14:45:07
Właśnie się zapadłem ze wstydu pod ziemię:) Dziękuję za pomoc.


Dzięki za link do tej stronki. Fajna stronka:)
« Ostatnia zmiana: Marzec 05, 2016, 16:04:47 wysłana przez lukaszsa »

Offline CheshireCat

  • Użytkownik

  • +1
# Marzec 05, 2016, 14:46:34
Polecam również ten link. Wprawdzie to nie trójkąty, a heksy, ale dużo ciekawych problemów związanych z siatką jest tam poruszonych :)

http://www.redblobgames.com/grids/hexagons/