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

SFML-bounding box,precyzja

Ostatnio zmodyfikowano 2015-09-21 12:16
Autor Wiadomość
shadow999
Temat założony przez niniejszego użytkownika
SFML-bounding box,precyzja
» 2015-09-20 17:44:01
Witam, chciałem się dowiedzieć czy bounding boxy są faktycznie tak nieprecyzyjne. Otóż mam kwadrat 50x50(bounding box) oraz rotującą na środku ekranu linię, która przecinając pierwszy napotkany punkt kwadratu ma wyświetlić koordynaty punktu. Niestety moje oczekiwania co do precyzji były znacznie wyższe, wykrycie kolizji potrafi pomylić się nawet o 20px. Poniżej wycinek odpowiadający za kolizję.

for(int k=1999;k>0;k--){
if(a.contains(pl[k])&&a.contains(pl[k-1])==false&&pierwszy==false){  
//pl to nic innego jak zbiór 2000 koordynatów punktów rotującej linii liczonych dynamicznie z funkcji trygonometrycznych-czyli poruszenie linii o 1 stopień spowoduje zmianę wszystkich koordynatów
//"a" to oczywiście nasz bounding box kwadratu
zapis[0]=pl[k];  //zapisujemy punkt kolizji
zapis[2]=pl[1999];//nieistotne dla mojego problemu, służy do pobierania punktu widma linii w miejscu przecięcia
pierwszy=true; //mamy już koordynat więc zabezpieczamy przed nadpisaniem przez inną daną
}}
P-137725
SocrateZ
» 2015-09-20 20:56:53
http://i.stack.imgur.com​/H5pB0.jpg
http://www.jhdl.org​/documentation/users_manual​/images/boundingBox.gif

Jak widzisz, "Bounding box" jest nieprecyzyjny tylko dla figur różnych od prostokąta. Jeżeli masz kwadrat, to niemożliwe żeby ta metoda wykrywania kolizji była nieprecyzyjna. Sprawdź obliczenia.
P-137745
shadow999
Temat założony przez niniejszego użytkownika
» 2015-09-20 23:57:23
Dzięki za pomoc, faktycznie, bounding box jest dość poprawny, jednak przesunięcie wynikające z niedokładności wyliczeń 2000 sinusów na sekundę sukcesywnie powiększało niedokładność pomiaru, zastosowałem metodę przybliżeń do 50 jako, że kwadrat ma wielkość 50,50. Jeszcze pewnie kilka postów napiszę więc temat zostawię otwarty aby spamu nie robić, jeżeli ktoś ma jeszcze chęci to może mi wytłumaczyć jak rotacja wpływa na bounding box prostokątów? Pisanie silnika dynamicznego oświetlenia w samym sfml to większe wyzwanie niż sądziłem.
P-137755
pekfos
» 2015-09-21 12:16:04
Jeszcze pewnie kilka postów napiszę więc temat zostawię otwarty aby spamu nie robić
Jeśli twoje posty to spam, nie pisz nic w ogóle. Zamykam.
P-137762
« 1 »
  Strona 1 z 1