Tak cau,
Robím hru a potreboval by som vypočítať či dôjde ku kolízii kruhu so stenou. Stena nemusí byť vodorovná alebo zvislá. Poznám
súradnice vrcholov, súradnice stredu kruhu a jeho polomer. Mohol by mi niekto poradiť ako mám vypočítať presnú polohu priesečníka/ov?
Dík
Fórum › Matematika
Kolízia so stenou
To Dead Boss : Jednu rovinu ti určuje stěna, druhá rovina je ta, v které leží kružnice ... spočítáš přůsečnici dvou rovin (jednoduchá analytika) a potom průsečíky té přůsečnice s kružnicí a to jsou přůsečíky kružnice s stěnou :) viz. příloha
Aha. A nejaký link, alebo niečo? Ja som z jdnoduchej analitiky totiž dosť jeleň. Netuším čo to je. :-) A nejako aby som to vedel previesť do súradnicového systému monitoru. Som len skončil prvý ročník na strednej tak ja do toho moc nevidim.
Koukni na články o analytické geometrii na http://maths.cz/ - http://maths.cz/
Dead Boss napsal:
Aha. A nejaký link, alebo niečo? Ja som z jdnoduchej analitiky totiž dosť jeleň. Netuším čo to je. :-) A nejako aby som to vedel previesť do súradnicového systému monitoru. Som len skončil prvý ročník na strednej tak ja do toho moc nevidim.
Do 3D se bez solidniho matematickeho aparatu nepoustej, nema to cenu. Pokud ti uz nekdo napise tohle, tak se stejne sam nikam dal nepohnes.
To CommanderZ : Jen bych rád poznamenal pro všechny kteří se přeli, že bez matiky programovat jde, prostě nejde.
Ja nejaku tu matiku viem z knih o programovani hier. Ale vy ste ma nepochopili mne treba 2D kolíziu. Na 3D to prerobím jednoducho - využívam vlastný engin niečo na štýl build enignu.
Viem určiť kolíziu s horizontálnou alebo vertikálnou stenou, ale potrebujem určiť kolíziu s ľubovoľnou. Takže to vysvetlím trochu obšírnejšie:
Máme čiaru, ktorej poznáme súradnice dvoch bodov. Tá predstavuje stenu. Máme kruh, ktorý predstavuje bounding box hráča. Na scénu sa dívam zhora. Poôvodne som plánoval kolíziu zistiť takto: Určíme uhol ktorý stena zviera z horizontálnou čiarou. Všetky súradnice bodov rotujeme o ten uhol v opačnom smere. Zistíme kolíziu kruhu s touto novou horizontálnou čiarou. Tento priesečník potom rotujeme o spomínaný uhol, čím dostaneme priesečník v pôvodných súradniciach. Toto všetko urobiť viem.
Má to ale dve nevýhody: Pomalosť a nepresnosť. Tak by som potreboval presnejší a rýchlejší spôsob.
Ano, je to analytika, ale jestli jednoduchá, nevím, nevím, ...
popis přímky (v rovině!) - ax + by + c = 0 (lze odvodit např. přes graf lineární funkce) - a,b jsou souřadnice normálového (kolmého) vektoru přímky, vektor AB = B - A, kolmý vektor získáš záměnou souřadnic x a y a změnou znaménka právě u jedné souřadnice, c je konstanta, kterou lze spočítat dosazením souřadnic x a y libovolného bodu přímky
popis kružnice - (x-m)^2 + (y - n)^2 = r^2 - střed v [m,n], poloměr r
pokud řešíš jako soustavu rovnic s neznámými x a y tak máš 3 možné výsledky:
1) žádný řešení - žádný společný bod
2) 2 řešení - přímka je sečnou kružnice
3) 1 řešení (dvojnásobný kořen) - přímka je tečnou kružnice
To by Ti mohlo stačit k vyřešení problému. Přece jen to není zase tak složité.
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Kolizia kruhov — založil Grungy
Kolízia (XNA) — založil Andrej
Soubor.php — založil Slipknot
Prelozeni souboru — založil pavel
Vypsani souboru — založil Piwik