.[ ČeskéHry.cz ].
Kolize bodu s úsečkami

 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> Obecné
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
micky



Založen: 28. 02. 2008
Příspěvky: 348
Bydliště: Plzeň, Praha

PříspěvekZaslal: 28. prosinec 2009, 17:01:11    Předmět: Kolize bodu s úsečkami Odpovědět s citátem

Zdravím, píšu takový menší program... Na scéně jsou rozmístěny body, které lze různě propojit úsečkami. Průšvih nastává ve chvíli, kdy mám uživateli umožnit jejich odstranění. I přes nějaké ty optimalizace, že nejprve kontroluju rámeček vytyčený dvěma body, a pak teprve rovnici přímky, jsem stále na složitosti O(N*N/2). Při větším množství bodů na scéně výběr úsečky začne lagovat...

Napadlo mě tedy:
1/ mít jakousi bitmapu, do které by se úsečky předrenderovaly a pak už jen přečíst po kliknutí hodnotu pixelu - to mi přijde jako řešení z nouze
2/ rozsekat scénu do stromu - tady si nevím rady, s body bych si poradil, z úseček mám obavy...

Jen bych dodal, že scéna je 2D. S kolizí samotnou nemám problém, spíš bych potřeboval odkaz na nějaké poučné pojednání o kolizích s velkým množstvím úseček. Díky mockrát za případné rady a postřehy.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
michalferko



Založen: 29. 09. 2008
Příspěvky: 83

PříspěvekZaslal: 28. prosinec 2009, 17:07:02    Předmět: Odpovědět s citátem

Na to by sa hodil quadtree alebo nejaka podobna hierarchicka struktura
_________________
Moje minihry a ine projekty
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
micky



Založen: 28. 02. 2008
Příspěvky: 348
Bydliště: Plzeň, Praha

PříspěvekZaslal: 28. prosinec 2009, 17:26:09    Předmět: Odpovědět s citátem

Jak do quadtree zahrnu dvojice bodů? Stačí mi to jen nastínit Smile

EDIT: Úsečka = dva body + to mezi nimi... tak bych to zjednodušeně viděl
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
nou



Založen: 28. 07. 2007
Příspěvky: 1050

PříspěvekZaslal: 28. prosinec 2009, 17:43:55    Předmět: Odpovědět s citátem

mas to cele v 2D. a vyberas jednotlive body pomocou obdlznikovych oblasti. ved to sa da riesit v linearnom case. a usecku vyberiem akonahle je tam len jeden z koncvich bodov.

neviem co ti tam tvory tu O(N^2) zlozitost.
_________________
Najjednoduchšie chyby sa najtažšie hľadajú.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
micky



Založen: 28. 02. 2008
Příspěvky: 348
Bydliště: Plzeň, Praha

PříspěvekZaslal: 28. prosinec 2009, 19:52:13    Předmět: Odpovědět s citátem

nou napsal:

neviem co ti tam tvory tu O(N^2) zlozitost.


Ah... ano, omlouvám se, je to lineární složitost - nechal jsem se zmást sám sebou, ale i tak bych to chtěl zrychlit. Zkusím to s nějakým stromem, nevím, jestli se tomu ve 2D dá říkat octtree. Smile

EDIT: Kdybych si přečetl trochu pozorněji ten kus kódu, co jsem psal někdy v noci, patrně bych se tady vůbec neptal. Skutečně jsem sepsal cosi, co mělo kvadratickou složitost. Octree, Quadtree, nic takového nebude nakonec potřeba, program po přepsání tří řádků kódu pracuje svižně. Ještě jednou díky "nou" za probuzení. Smile
_________________
https://www.bluepulsar.cz/
https://twitter.com/11thDream_Game/
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
pcmaster



Založen: 28. 07. 2007
Příspěvky: 1827

PříspěvekZaslal: 28. prosinec 2009, 20:53:44    Předmět: Odpovědět s citátem

Quadtree je len specialny pripad Octree. Podobne vztahy su celkovo medzi kD-tree, BSP-tree, Octree atd.

Keby si chcel riesit aj taku moznost, ze mas body a niektore su pospojovane useckami a user ma mat moznost oznacovat usecky a pripadne usecky aj odstranovat (s useckami aj ich konce, pripadne nie), tak mas viacero moznosti.

Nielen tieto problemy riesi vypoctova geometria. Nad useckami existuje kopec typov stromov, ktore ti poskytuju logaritmicku zlozitost dotazov, presne ako by si ocakaval. Koho to zaujima, moze skusit pohladat pojmy ako "segment trees", "interval trees", "segment windowing", ale mozem povedat, ze dana problematika je dost narocna, a preto ju mame na FEL CVUT napriklad az v poslednom (5.) rocniku a ja este skusku furt nemam. Tento problem sa vsak da pohodlne riesit aj pomocou BVH (bounding volume hierarchies).

Keby si chcel riesit aj problem vyberu useciek ci trojuholnikov a inych objektov, mozem sa tu o tom skusit trochu rozpisat.
_________________
Off-topic flame-war addict since the very beginning. Registered since Oct. 2003!
Interproductum fimi omne est.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
micky



Založen: 28. 02. 2008
Příspěvky: 348
Bydliště: Plzeň, Praha

PříspěvekZaslal: 29. prosinec 2009, 12:51:49    Předmět: Odpovědět s citátem

Možná jen tak zlehka, spíš mě odkázat na to, co mám hledat. Pro ten prográmek, co jsem vyrobil, nakonec lineární složitost bude i stačit. Je pravda, že na střední škole toho člověk o octree moc neuslyší. Smile

Nu, mám se co učit.
_________________
https://www.bluepulsar.cz/
https://twitter.com/11thDream_Game/
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Marek



Založen: 28. 07. 2007
Příspěvky: 1782
Bydliště: Velká Morava

PříspěvekZaslal: 29. prosinec 2009, 13:05:44    Předmět: Odpovědět s citátem

Na VŠ o octree taky neuslyšíš, pokud si nezapíšeš předmět o optimalizaci grafiky. To jsou věci, na které ti stačí net.
_________________
AMD Open Source Graphics Driver Developer
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
pcmaster



Založen: 28. 07. 2007
Příspěvky: 1827

PříspěvekZaslal: 29. prosinec 2009, 13:19:46    Předmět: Odpovědět s citátem

[OT]Tak neviem, my sme mali na akceleracne datove struktury v PG povinny predmet a na vypoctovu geometriu druhy povinny predmet Smile
[ÜBER-OT]S ktorymkolvek computer engineering Bc. sa zapiste na magistersky (Ing.) program FEL CVUT elektrotechnika a informatika - vypoctova technika - pocitacova grafika, odporucam Very Happy Twisted Evil [/ÜBER-OT][/OT]

Eo ma pravdu, quadtree/octree vpoho vygooglis a naimplementujes (po spravnom pochopeni) z netu. Zacni kludne na wikipedii, tam je kopec odkazov.
_________________
Off-topic flame-war addict since the very beginning. Registered since Oct. 2003!
Interproductum fimi omne est.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Mantharis



Založen: 28. 07. 2007
Příspěvky: 39

PříspěvekZaslal: 29. prosinec 2009, 18:50:56    Předmět: Odpovědět s citátem

[OT]
Dovolim si nesouhlasit, na skolach informatickyho zamereni by se IMHO rozhodne o zakladnich datovych strukturach pro praci ve vice rozmerech rozhodne mluvit melo v ramci nejakyho povinnyho predmetu uz v BC. studiu.

Skoro bych rekl ze spolecne s algoritmy je to ta uplne nejstezejnejsi cast informatiky...co jinyho pak na informatickych oborech v porovnani s matematickyma oborama ucit nez prave takovyhle veci???

[OT2]
(tim netvrdim ze nekde se to mozna skutecne neuci, ale pak bych na takovy skole teda studovat nechtel Very Happy )
[/OT2]

[/OT]
_________________
If the God gave us the source code we could bug the world.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Houp



Založen: 28. 07. 2007
Příspěvky: 672

PříspěvekZaslal: 29. prosinec 2009, 20:09:42    Předmět: Odpovědět s citátem

pcmaster napsal:
[OT]
[ÜBER-OT]S ktorymkolvek computer engineering Bc. sa zapiste na magistersky (Ing.) program FEL CVUT elektrotechnika a informatika - vypoctova technika - pocitacova grafika, odporucam Very Happy Twisted Evil [/ÜBER-OT][/OT]


[OT]Obávám se, že si zaspal dobu, pokud vím, tak tenhle studijní program se jen dobíhá, ale už se na něj nově nezapíšete. Na druhous tranu věřím, že něco podobného bude na nových oborech na Otevřené informatice[/OT]
_________________
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Marek



Založen: 28. 07. 2007
Příspěvky: 1782
Bydliště: Velká Morava

PříspěvekZaslal: 29. prosinec 2009, 20:30:40    Předmět: Odpovědět s citátem

Mantharis napsal:
[OT]
Dovolim si nesouhlasit, na skolach informatickyho zamereni by se IMHO rozhodne o zakladnich datovych strukturach pro praci ve vice rozmerech rozhodne mluvit melo v ramci nejakyho povinnyho predmetu uz v BC. studiu.

Skoro bych rekl ze spolecne s algoritmy je to ta uplne nejstezejnejsi cast informatiky...co jinyho pak na informatickych oborech v porovnani s matematickyma oborama ucit nez prave takovyhle veci???

[OT2]
(tim netvrdim ze nekde se to mozna skutecne neuci, ale pak bych na takovy skole teda studovat nechtel Very Happy )
[/OT2]

[/OT]


Není lepší raději studenty naučit jak takové datové struktury navrhovat než jim je papouškovat? Octree je jen blbej strom, na tom není zas moc co učit, to stojí za zmínku tak na pár slajdů.
_________________
AMD Open Source Graphics Driver Developer
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
micky



Založen: 28. 02. 2008
Příspěvky: 348
Bydliště: Plzeň, Praha

PříspěvekZaslal: 29. prosinec 2009, 20:56:11    Předmět: Odpovědět s citátem

Eosie napsal:

Octree je jen blbej strom, na tom není zas moc co učit, to stojí za zmínku tak na pár slajdů.

Pro mě to bude taky blbej strom, jakmile ho jednou sám použiju. Asi nebudem protahovat off-topicy, ještě jednou díky za rady.
_________________
https://www.bluepulsar.cz/
https://twitter.com/11thDream_Game/
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Mantharis



Založen: 28. 07. 2007
Příspěvky: 39

PříspěvekZaslal: 29. prosinec 2009, 21:49:11    Předmět: Odpovědět s citátem

citace:
Není lepší raději studenty naučit jak takové datové struktury navrhovat než jim je papouškovat? Octree je jen blbej strom, na tom není zas moc co učit, to stojí za zmínku tak na pár slajdů.


Souhlas, ale prave ze je to vec na slide, tak mi prijde skoda takovou variantu nezminit treba prave pri probirani stromu nekde na zaver...student tim dostane do podvedomi ze neco takovyho existuje a jak se to jmenuje a kdyz to jednou bude potrebovat tak si to uz lehce dohleda.

A to ze je lepsi kdyz si to student vymysli sam...to je otazka, ono naucit studenta premejslet je urcite prinosnejsi nez do nej narvat jen natvrdo informace ale zase jen s timhle pristupem by se clovek moc daleko nedostal kdyby si vsechno vymyslel sam...takze myslim ze ten slide si to proste zaslouzi Wink
_________________
If the God gave us the source code we could bug the world.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> Obecné Časy uváděny v GMT + 1 hodina
Strana 1 z 1

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna