Mapa Heksagonalna - współrzędne
Ostatnio zmodyfikowano 2024-02-23 18:38
tBane Temat założony przez niniejszego użytkownika |
Mapa Heksagonalna - współrzędne » 2024-02-22 19:41:55 Aby konwertować współrzędne heksagonalne na globalne należy: vector2f hexToGlobal( float x, float z ) { vector2f pos; pos.X = x * 2.0f * innerRadius +( int( z ) % 2 ) * innerRadius; pos.Y = y * 1.5f * outerRadius; return pos; }
W jaki sposób dokonać odwrotnych obliczeń - to znaczy jak konwertować współrzędne globalne na heksagonalne ? |
|
tBane Temat założony przez niniejszego użytkownika |
» 2024-02-22 19:46:15 Konwersja współrzędnych globalnych na heksagonalne według ChatGPT ale nie działa dla współrzędnych x==3 oraz x==7. https://youtu.be/6tOcyE3CHwEvector2i globalToHex( float x, float y ) { vector2i hex; hex.Y = y /( 1.5f * outerRadius ); hex.X =( x -( int( hex.Y ) % 2 ) * innerRadius ) /( 2.0f * innerRadius ); return hex; }
|
|
DejaVu |
» 2024-02-22 22:24:05 Wypisz na ekran obliczenia jakie uzyskujesz z tego działania, abyć mógł to 'zdiagnozować'. |
|
tBane Temat założony przez niniejszego użytkownika |
» 2024-02-23 18:28:55 edit // coś źle obliczało - już zapomniałem |
|
tBane Temat założony przez niniejszego użytkownika |
» 2024-02-23 18:38:18 Rozwiązanie vector2di globalToHex( float x, float y ) { vector2di hex; float xx =( x /( 2.0f * innerRadius ) ) -(( int( y /( 1.5f * outerRadius ) ) ) % 2 ) / 2.f; float zz = y /( 1.5f * outerRadius ); hex.X =( xx + 0.5f ); hex.Y =( zz + 0.5f ); return hex; }
|
|
« 1 » |