Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Matematyczne przedstawienie powierzchni ziemi (sfery).

Ostatnio zmodyfikowano 2017-05-30 00:36
Autor Wiadomość
Rashmistrz
Temat założony przez niniejszego użytkownika
Matematyczne przedstawienie powierzchni ziemi (sfery).
» 2017-05-29 20:54:02
Analizuję sobie protokół pewnej polskiej gry lokalizacyjnej.
Ziemia została podzielona na w przybliżeniu kwadratowe
obszary o przybliżonej powierzchni 1km2...

Zaznaczam, że nie interesuje mnie topografia terenu.
Chociaż można zarzucić coś o tym w tym temacie, tak dla uzupełnienia.

Boki obszarów nie są wyrównane do równoleżników i południków,
i w skrajnych przypadkach nachodzą na siebie.

Obszar jest wyrażony przez jego nazwę,
4 narożniki(współrzędne geograficzne),
wpływów i dodatkowych danych obiektach.

Problem jest taki, że jakby każdy możliwy obszar został utworzony
to przechowywanie danych o nich wszystkich zajmowałoby ogrom miejsca.

Nie mam pojęcia jak to wszystko uprościć
i jeszcze wyświetlić z użyciem OpenGL...
przynajmniej fragmentu...
P-161751
1aam2am1
» 2017-05-29 22:22:31
Przechowuj tylko ten kawałek który możesz aktualnie wyświetlić?
Wszystkie dane zajmowały by pewnie kilka giga.
Więc na pewno trzeba by uprościć nazwę bo 4 współrzędne na obiekt to za dużo wystarczyły by 2 jakby rozłożyć ziemię na płasko.
Typy się powtarzają więc jeden interesuje na typ i oddzielna lista przechowująca typy.
Gdyby dane układały się w jakieś sensowne wzory można by zastosować obszary i trzymać jeden obiekt dla wielu id.
Inaczej to niewiem więc mnie oświećcie.
P-161757
michal11
» 2017-05-29 22:35:31
Nie do końca zrozumiałem chyba co chcesz zrobić ale wydaje mi się, że najłatwiej będzie ci korzystać z rozwiązań stosowanych w gamedevie: heightmap, octree (ew. queadtree)
P-161758
Rashmistrz
Temat założony przez niniejszego użytkownika
» 2017-05-30 00:36:30
Przechowuj tylko ten kawałek który możesz aktualnie wyświetlić?
Jeśli chodzi o dane to chcę przechowywać wszystkie dane jakie uda mi się otrzymać od serwera
by śledzić na bieżąco własne i cudze obszary (, czyli ich identyfikatory i położenie).

Skonstruowanie obrazu obszarów jest problemem.
Mógłbym to uprościć przekształcając współrzędne geograficzne
do trójwymiarowej przestrzeni euklidesowej
i wykonać projekcję ortograficzną tej uproszczonej "sfery"
z wycentrowaniem kamery na punkt na sferze tak
by kamera była współliniowa z punktem
na powierzchni tej sfery i środkiem sfery.

W ten sposób będę mógł wyświetlić pewną półkulę
lub jej fragment przy odpowiednim zbliżeniu.
Jednak przeliczanie współrzędnych na sinusy i cosinusy
jest dla mnie przerażające w takich ilościach.
Dlatego jest mi potrzebne uproszczenie
dla tego specyficznego przypadku.

Wszystkie dane zajmowały by pewnie kilka giga.
To prawda. Liczyłem ten skrajny przypadek,
jednak na szczęście nieistniejące obszary
nie posiadają identyfikatora ani wierzchołków.

4 współrzędne na obiekt
to za dużo wystarczyłyby 2
jakby rozłożyć ziemię na płasko.
Jednakże muszę mieć sposób by móc wciąż wyznaczyć quad dla danego
obszaru i z łatwością przenieść się do punktu tego obszaru w grze.

(operacja "teleportacji" potrzebuje ID obszaru albo współrzędnych)
(chcę wciąż móc wyświetlać w przybliżeniu zajętą/wolną przestrzeń)

Ciekawostką jest też to, że serwer wysyła nam też
informację o wyśrodkowanym w obszarze punkcie.

Typy się powtarzają więc jeden interesuje
na typ i oddzielna lista przechowująca typy.
Dobrą rzeczą by było je móc grupować w wielokąt,
ale często zdarzają się dziury,
które są bronione za wszelką cenę.

Gdyby dane układały się w jakieś sensowne wzory można by
zastosować obszary i trzymać jeden obiekt dla wielu id.
Wtedy by był potrzebny algorytm łączenia ich w grupę.

Z obserwacji wiem, że ziemia została podzielona
względem konkretnych południków na wrzecionowate
powierzchnie z wykluczeniem biegunów do krzywej
biegnącej wzdłuż pewnych nieznanych mi równoleżników.

Z tego powodu niektóre "krawędziowe" obszary
sąsiadujących podziałów nachodzą na siebie.

Nie do końca zrozumiałem chyba co chcesz zrobić, [...]
Móc przedstawić graficznie dane liczbowe.
Uzyskać coś po przekształceniach podobnego
do siatki kartograficznej, najlepiej walcowej,

bo można pominąć bieguny gdyż są wykluczone z rozgrywki,
jak i obszary wodne nie znajdujące się na terenie polski.

rozwiązań stosowanych w gamedevie:
heightmap, octree (ew. queadtree)
Panie... to jest trójwymiar, a ja chcę przedstawić coś
opisane w geometrii eliptycznej, a nie euklidesowej.
P-161768
« 1 »
  Strona 1 z 1