Dvě otázky ke GeoGetu
#1
Publikováno 09 říjen 2008 - 14:44
#3
Publikováno 09 říjen 2008 - 14:53
PeBo napsal/a:
K bodu 1 - je to tak, jak píšeš.
A ten limit počtu zápisů je v jakých asi řádech?
#4
Publikováno 09 říjen 2008 - 15:24
#5
Publikováno 09 říjen 2008 - 15:35
Postup je prosty... zjistujes, jestli je bod uvnitr mnohouhelniku. A jak to funguje, zkus si vyfiltrovat Stredocesky kraj bez Prahy._Tom napsal/a:
2) A tohle je spíš jen věc pro uspokojení mě zvědavosti. Zajímalo by mě, jakým postupem (algoritmem, chcete-li) se řeší to, zda nějaký bod patří do nějaké oblasti nebo nepatří. A funguje to i pro nekonvexní oblast? A bere to v úvahu zakřivení Země?
Predstav si obdelnik, ktery zacnes kroutit tak, aby se jeho dve kratsi strany nakonec dotkly. Takze ti pak vznikne takove mezikruzi... takze porad zjistujes polohu v tom zdeformovanem 'obdelniku', ackoliv je uprostred dira.
A zakriveni zeme podle mne neni treba brat v uvahu. Co v tomto pripade to zakriveni zkresluje? (Zakriveni je dobre treba pro vypocet vzdalenosti)
#6
Publikováno 09 říjen 2008 - 19:54
HaLuMa napsal/a:
Postup je prosty... zjistujes, jestli je bod uvnitr mnohouhelniku. A jak to funguje, zkus si vyfiltrovat Stredocesky kraj bez Prahy.
Jak zjistit, je-li bod uvnitř konvexního n-úhelníku,to si představit umím, u nekonvexního (třeba tvaru průřezu činkou) už ne, asi si budu muset něco o tom nastudovat
A zakriveni zeme podle mne neni treba brat v uvahu. Co v tomto pripade to zakriveni zkresluje? (Zakriveni je dobre treba pro vypocet vzdalenosti)
Myslím, že pokud předpokládáš souřadnicový systém jako pravoúhlý a kartézský, tak to přestane pro dlouhé čáry trochu souhlasit, protože se zkrátka bude v sever-jižním směru měnit velkost jednotky ve směru východo-zápdaním. Nebo třeba nejkratší spojnice dvou bodů na jedné rovnoběžce taky není právě po té rovnoběžce (pokud to zrovna není rovník) jak by ukazoval systém kartézský. Proto úsečka v té aproximaci bude jiná než skutečná nejkratší spojnice na geoidu. Tím pádem může nějaký bod vyjít jinam, než kam by měl.
To absolutně není kritika té funkce, je podle mě dost nepravděpodobné, že si někdo určí oblast body vzdálenými přes čtvrt zemského obvodu. Uvažoval jsem jen, jak bych se takovou věc pokusil udělat já (umět programovat ) a došel jsem k závěru, že bych se na zakřivení vykašlal. ¨Tvá odpově'd je tedy pro mě jistým potvrzením že jsem uvažoval jakž-takž správně.
Předpokládám, že pointa bude teď v tom, že mi vysvětlíš, že jsem to napsal úplně blbě
#7
Publikováno 09 říjen 2008 - 21:15
_Tom napsal/a:
Jak zjistit, je-li bod uvnitř konvexního n-úhelníku,to si představit umím, u nekonvexního (třeba tvaru průřezu činkou) už ne, asi si budu muset něco o tom nastudovat
Ja pouzivam konkretne zpusob "ray casting". Tedy nakresli si libovolny mnohouhelnik (treba i ten prurez cinkou), a vyber si libovolny bod. Z toho bodu pak vedes poloprimku nejakym smerem, dejme tomu treba doprava. A spocitas, kolikrat se tato poloprimka protne s hranici mnohouhelniku. Jakmile je pocet protnuti lichy, bod lezi uvnitr. Tomuto zpusobu nevadi ani diry uprostred mnohouhelniku, zkus si nakreslit ty zavazi cinky s dutinami, a bude to stale fungovat.
A ackoliv se to na prvni pohled nezda, je to velmi jednoduche naprogramovat a je to rychle.
Myslím, že pokud předpokládáš souřadnicový systém jako pravoúhlý a kartézský, tak to přestane pro dlouhé čáry trochu souhlasit, protože se zkrátka bude v sever-jižním směru měnit velkost jednotky ve směru východo-zápdaním. Nebo třeba nejkratší spojnice dvou bodů na jedné rovnoběžce taky není právě po té rovnoběžce (pokud to zrovna není rovník) jak by ukazoval systém kartézský. Proto úsečka v té aproximaci bude jiná než skutečná nejkratší spojnice na geoidu. Tím pádem může nějaký bod vyjít jinam, než kam by měl.
No, ja to pocitam z WGS-84 souradnicoveho systemu, ktery neni napasovan na rovinu, ale na elipsoid. Navic tebou citovane problemy se tykaji vzdalenosti (tam je to jasne, tam jde o vzdalenoosti po povrchu elipsoidu), ale konkretni vzdalenost v pripade zjistovani polohy v polygonu nehraje zadnou roli. Tady zadny problem nevidim.
#8
Publikováno 10 říjen 2008 - 7:41
Ano je jasné, jsem hlupák, že mě to nenapadlo, taková prostá myšlenka :-)HaLuMa napsal/a:
Ja pouzivam konkretne zpusob "ray casting". Tedy nakresli si libovolny mnohouhelnik (treba i ten prurez cinkou), a vyber si libovolny bod. Z toho bodu pak vedes poloprimku nejakym smerem, dejme tomu treba doprava. A spocitas, kolikrat se tato poloprimka protne s hranici mnohouhelniku.
No, ja to pocitam z WGS-84 souradnicoveho systemu, ktery neni napasovan na rovinu, ale na elipsoid. Navic tebou citovane problemy se tykaji vzdalenosti (tam je to jasne, tam jde o vzdalenoosti po povrchu elipsoidu), ale konkretni vzdalenost v pripade zjistovani polohy v polygonu nehraje zadnou roli. Tady zadny problem nevidim.
Pokud to počítáš na elipsoidu, tak je to bude fungovat. I když mi zas není moc jasné, jak se na elipsoidu vypočítává nejkratší spojnice dvou bodů. Ale na to jistě budou k nalezení vzorečky :-) Totéž asi platí pro ten paprsek, který n-krát protne hranici, na elipsoidu to bude nějaký kus dosti obecné elipsy. vzhledem k tomu, že paprsek může elipsoid oběhnout a běhat stále dokola, musíš jeho délku omezit, pak ale zas hrozí, že třeba vtom posledním kousíčku, co jsi už nenakreslil (nehledal na něm průniky s hranicí) ještě nějaká ta hranice bude a vyjde to špatně.
Pokud se můžou při různých výpočtech rozcházet vzdálenosti, tak je přece jasně, že vlastně počítáš při těchto různých výpočtech délky různých čar. A pokud je takovými čarami určen sférický (vlastně elipsoi... jak vlastně nazvat n-úhelník nakreslený na elipsoidu?) n-úhelník, tak bude vypadat trošku jinak. A tím pádem některý bod může padnout pro jednu čáru dovnitř a pro jinou ven. To už ale řešíme dost nepodstatné věci. Jsem jen takový rýpal :-)
#9
Publikováno 10 říjen 2008 - 8:08
_Tom napsal/a:
Pokud to počítáš na elipsoidu, tak je to bude fungovat. I když mi zas není moc jasné, jak se na elipsoidu vypočítává nejkratší spojnice dvou bodů. Ale na to jistě budou k nalezení vzorečky :-) Totéž asi platí pro ten paprsek, který n-krát protne hranici, na elipsoidu to bude nějaký kus dosti obecné elipsy. vzhledem k tomu, že paprsek může elipsoid oběhnout a běhat stále dokola, musíš jeho délku omezit, pak ale zas hrozí, že třeba vtom posledním kousíčku, co jsi už nenakreslil (nehledal na něm průniky s hranicí) ještě nějaká ta hranice bude a vyjde to špatně.
Pokud se můžou při různých výpočtech rozcházet vzdálenosti, tak je přece jasně, že vlastně počítáš při těchto různých výpočtech délky různých čar. A pokud je takovými čarami určen sférický (vlastně elipsoi... jak vlastně nazvat n-úhelník nakreslený na elipsoidu?) n-úhelník, tak bude vypadat trošku jinak. A tím pádem některý bod může padnout pro jednu čáru dovnitř a pro jinou ven. To už ale řešíme dost nepodstatné věci. Jsem jen takový rýpal :-)
Pocitas se souradnicemi z elipsoidu, ale placnes je na rovinu a v ni to pocitas. Sice dojde ke zkresleni (mapu bys takto nenakreslil...), ale zkreslene je vsechno stejne, i ta poloprimka, pres kterou to pocitas. Proto to podle mne vubec nevadi.
Dalsi veci je... vem si na tom globusu primou spojnici dvou bodu. Je jasne, ze delka teto prime spojnice je kratsi, nez spojnice tech bodu po povrchu globu. Ale prumet te prime spojnice na povrch se bude preci presne kryt s tou spojnici po povrchu. A protoze nas nezajimaji konkretni vzdalenosti, ale prave poloha vuci te spojnici, je nam to zkresleni vzdalenosti sumafuk.
Jo, a pro zjednoduseni vypoctu se ta poloprimka vede ve smeru nejake osy, a da se take velmi trivialne testovat, jestli je bod na te poloprimce uz zcela mimo objekt a da se s vypoctem prestat. Kdybys to nepocital v rovine, tak bys na objekt umistenym na vycpoctove ose narazel porad dokolecka.
#10
Publikováno 10 říjen 2008 - 12:54
Představ si dva body na téže rovnoběžce. Jsou to dva z vrcholů polygonu na elipsoidu/kouli. Nejkratší spojnice na glóbu je trochu vyhnutá směrem k pólu. Pokud to "plácneš do roviny", tak v té rovině je nejkratší spojnice právě po té rovnoběžce. Nějaký bod, který leží na téže rovnoběžce mezi těmi dvěma body jednou tedy leží přesně na hranici, podruhé pod hranicí. Když ho trochu posunu k pólu, může dojít k tomu, že v rovině se jeví nad rovnoběžkou, zatímco na glóbu pod rovnoběžkou, tedy jedou uvnitř polygonu a podruhé vně polygonu.HaLuMa napsal/a:
Pocitas se souradnicemi z elipsoidu, ale placnes je na rovinu a v ni to pocitas.
Dalsi veci je... vem si na tom globusu primou spojnici dvou bodu. Je jasne, ze delka teto prime spojnice je kratsi, nez spojnice tech bodu po povrchu globu. Ale prumet te prime spojnice na povrch se bude preci presne kryt s tou spojnici po povrchu. A protoze nas nezajimaji konkretni vzdalenosti, ale prave poloha vuci te spojnici, je nam to zkresleni vzdalenosti sumafuk.
#11
Publikováno 10 říjen 2008 - 13:32
#12
Publikováno 10 říjen 2008 - 14:43
HaLuMa napsal/a:
To je prave ta chyba v uvaze... To, ze ta skutecna spojnice je vyhnuta smerem k polu, to je jen dusledek nejakeho konkretniho pohledu v prostoru. Podle toho odkud se v prostoru na ten globus koukas, to vyhnuti se ti zda ruzne velke. Pokud se budes na tu spojnici koukat z nadhlavniku, nebude to vyhnuti dokonce zadne, protoze ta prima spojnice bude presne pod tebou.
To vyhynuti totiz neni nijak do strany, ale presne nad tou primou spojnici. Jen diky ruznym trojrozmernym pohledum se ti pak zda, jako by ta spojnice byla vyhnuta do strany, ale neni. Je vzdy presne nad primou spojnici. Kdyz to placnu do roviny, porad ta vyhnuti jsou presne nad temi primymi spojnicemi. Proto to do vypoctu nezanasi vubec zadnou chybu.
Asi si nerozumíme. Čára na geoidu je průmětem přímé spojnice (tedy té vedené "podzemím" na elipsoid. Ano, to je jasné. A když to plácneš do roviny, tak se přímá spojnice stává čarou v té rovině. V mnou zmiňovaném případě z ní bude buď přímá čára (tedy splyne -chybně- s rovnoběžkou, pokud v té rovině nakreslíš rovnoběžku taky jako přímku) nebo se změní v křivku (a s rovnoběžkou v podobě přímky nesplyne - správná možnost, vyžaduje nějaké ty geometrické transformace) nebo bude přímá a rovnoběžka se zobrazí jako křivka (taky správná možnost).
#13
Publikováno 10 říjen 2008 - 14:58
#14
Publikováno 15 říjen 2008 - 18:04
#15
Publikováno 15 říjen 2008 - 18:38
#16
Publikováno 15 říjen 2008 - 18:46
#17
Publikováno 16 říjen 2008 - 14:42
#19
Publikováno 19 říjen 2008 - 22:04
#20
Publikováno 20 říjen 2008 - 7:25
0 uživatel(ů) prochází toto téma
0 uživatelů, 0 návštěvníků 0 anonymních uživatelů