Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
Deluxe
Založen: 31. 07. 2007 Příspěvky: 235 Bydliště: Oslavany
|
Zaslal: 28. květen 2010, 19:17:07 Předmět: Pathfinding (A* + nav. mesh/waypoint) |
|
|
Tak sem si s pomoci tohoto nejak napsal pathfinding na pravidelny mrizce.
Akorat mi neni uplne jasny jak by mnela vypadat funkce g(n). Mnela by asi vyjadrovat cenu nodu n od zacatku cesty.
Dalsi vec je co musim upravit, abych mohl A* pouzit na nepravidelnou sit waypointu (kromne heuristicke funkce h(n), ktera asi bude prima vzdalenost od cile).
A podobne nevim jak to prizpusobit pro nav. mesh. U nej bych se chtel pokusit o jeho automaticky generovani. Tam zhruba vim jak na to, rozdelim si povrch na mrizku, najdu si pruchozi ctverce a tim si vytvorim nejakej n-gon.
Tady mam problem stim, ze nevim jak ho potom rozrezat na konvexni polygony.
Budu rad za jakoukoli radu/link co se neceho z tohohle tyka. |
|
Návrat nahoru |
|
|
OndraSej
Založen: 28. 07. 2007 Příspěvky: 767 Bydliště: Brandýs nad Labem
|
Zaslal: 28. květen 2010, 20:08:39 Předmět: |
|
|
Vsak cely A* je o tom, ze si tu g(n) napocitavas... g(start) = 0, a pak je g(n) pocet kroku (resp. delky cest) ze startu do daneho uzlu. Vzdycky kdyz prehazujes nejaky uzel z open do closed, tak pro nej to g(n) zafixujes (na zaklade g(n) nejakeho drive zpracovaneho uzlu a delky cesty z tohohle uzlu do n).
Pro nepravidelnou mrizku je ten zakladni algoritmus uplne stejny a je to jenom o tom, jak ten graf mas reprezentovany (takze o uprave datovych struktur). _________________ http://trionteam.net |
|
Návrat nahoru |
|
|
Deluxe
Založen: 31. 07. 2007 Příspěvky: 235 Bydliště: Oslavany
|
Zaslal: 28. květen 2010, 20:24:45 Předmět: |
|
|
OndraSej: Dik, nebyl sem si jistej, jestli to ma byt to samy co h(n), ale od startu k n, nebo "delka" uz "projite" cesty.
No a pri pouziti toho nav. meshe bych mnel brat jako uzel spolecnou hranu 2 polygonu? |
|
Návrat nahoru |
|
|
OndraSej
Založen: 28. 07. 2007 Příspěvky: 767 Bydliště: Brandýs nad Labem
|
Zaslal: 28. květen 2010, 21:56:34 Předmět: |
|
|
Deluxe> typicky g(n) je delka "uz ujite" cesty a h(n) je odhad zbyvajici cesty do cile. A pokud to neni takhle, tak naopak. Pri pouziti meshe bych bral spis polygon jako uzel a hranu mezi polygony jako hranu. _________________ http://trionteam.net |
|
Návrat nahoru |
|
|
nou
Založen: 28. 07. 2007 Příspěvky: 1047
|
Zaslal: 28. květen 2010, 22:32:01 Předmět: |
|
|
a aby si dostal spravne vysledky tak ti musi h(n) splnat dve podmienky. v ciely musi vracat 0 a odhad vzdialenosti do ciela musi byt mensi nanajvys rovny skutocnej vzdialenosti. _________________ Najjednoduchšie chyby sa najtažšie hľadajú. |
|
Návrat nahoru |
|
|
OndraSej
Založen: 28. 07. 2007 Příspěvky: 767 Bydliště: Brandýs nad Labem
|
Zaslal: 28. květen 2010, 23:34:01 Předmět: |
|
|
nou> to je jenom jedna podminka _________________ http://trionteam.net |
|
Návrat nahoru |
|
|
Deluxe
Založen: 31. 07. 2007 Příspěvky: 235 Bydliště: Oslavany
|
Zaslal: 31. květen 2010, 20:26:45 Předmět: |
|
|
OndraSej: Takze musim pouzit heuristiku pro oblast? nebo by stacilo i zvolit treba jen stred toho polygonu a pocitat to k nemu? |
|
Návrat nahoru |
|
|
OndraSej
Založen: 28. 07. 2007 Příspěvky: 767 Bydliště: Brandýs nad Labem
|
Zaslal: 31. květen 2010, 21:12:19 Předmět: |
|
|
Deluxe: nerozumim dotazu. Tu heuristiku pouzivas vzdycky pro uzel navigacniho grafu. Pokud vytvaris uzel pro kazdy polygon, tak ta heuristika bude definovana pro ten konkretni polygon (at uz to znamena cokoliv).
Jinak ta heuristika nemusi byt kdovijak genialni, pokud splnuje podminky co napsal nou, tak to s ni bude fungovat. Typicky jde pouzit treba euklidovska vzdalenost do cile. _________________ http://trionteam.net |
|
Návrat nahoru |
|
|
Deluxe
Založen: 31. 07. 2007 Příspěvky: 235 Bydliště: Oslavany
|
Zaslal: 1. červen 2010, 08:43:17 Předmět: |
|
|
Myslel jsem to udelat tak jak pisou tady:
citace: |
If you want to search for any spot near some goal, instead of one particular space, you could construct a heuristic h'(x) that is the minimum of h1(x), h2(x), h3(x), ... where h1, h2, h3 are heuristics to each of the nearby spots. |
S tim, ze bych jako cile pouzil vertexy toho cilovyho polygonu. Ale asi to bude zbytecny a kdyz jako cil budu pocitat stred polygonu, tak to bude stacit... |
|
Návrat nahoru |
|
|
OndraSej
Založen: 28. 07. 2007 Příspěvky: 767 Bydliště: Brandýs nad Labem
|
Zaslal: 1. červen 2010, 10:48:12 Předmět: |
|
|
To moc nechapu. Co mysleji tim "nearby spots"? _________________ http://trionteam.net |
|
Návrat nahoru |
|
|
Deluxe
Založen: 31. 07. 2007 Příspěvky: 235 Bydliště: Oslavany
|
Zaslal: 1. červen 2010, 11:07:43 Předmět: |
|
|
Tohle bylo spis pro "grid maps" takze pokud je mi jedno ke kterymu policku se dostanu z nejaky skupiny tak muzu pouzit tohle. Tak mne napadlo ze by se to mozna dalo pouzit i v pripade polygonu, ale asi je to blbost. |
|
Návrat nahoru |
|
|
|