Problem ze zdobyciem kąta trójkąta(test kolizji do gry F
-
- Użytkownik
- Posty: 6
- Rejestracja: 23 wrz 2007, o 14:13
- Płeć: Mężczyzna
- Lokalizacja: Gliwice
- Podziękował: 1 raz
Problem ze zdobyciem kąta trójkąta(test kolizji do gry F
Witam
Mam taki problem rozwiązałem go dla trójkąta prostokątnego ale ta wersja ma dużo braków i jest niedokładna.
Testuje w silniku gry kolizje linii od gracza do celu i muszę policzyć odległość... a lepiej dam rysunek będzie prościej:
htp:\skmskm.republika.pl/trojkat.bmp
Mam a,b,c,w1,w1, i współrzędne wszystkich zielonych punktów.
I oczywiście h interesuje mnie odcinek znajdujący sie na b od góry do punktu zetknięcia sie z h. h jest pod kątem prostym z czerwoną linią.
Doszedłem do tego że wiem jak policzyć ten odcinek za pomocą prostego wzoru:
b1 = h/sin(90-(tu brakuje kąta)) kąt b z czerwoną linia
gdy kąt między liniami a,b lub b,c jest prosty to kąt można policzyć z: asin(a/c).
Mam taki problem rozwiązałem go dla trójkąta prostokątnego ale ta wersja ma dużo braków i jest niedokładna.
Testuje w silniku gry kolizje linii od gracza do celu i muszę policzyć odległość... a lepiej dam rysunek będzie prościej:
htp:\skmskm.republika.pl/trojkat.bmp
Mam a,b,c,w1,w1, i współrzędne wszystkich zielonych punktów.
I oczywiście h interesuje mnie odcinek znajdujący sie na b od góry do punktu zetknięcia sie z h. h jest pod kątem prostym z czerwoną linią.
Doszedłem do tego że wiem jak policzyć ten odcinek za pomocą prostego wzoru:
b1 = h/sin(90-(tu brakuje kąta)) kąt b z czerwoną linia
gdy kąt między liniami a,b lub b,c jest prosty to kąt można policzyć z: asin(a/c).
Ostatnio zmieniony 1 sty 1970, o 01:00 przez skmskm, łącznie zmieniany 2 razy.
-
- Użytkownik
- Posty: 384
- Rejestracja: 3 maja 2007, o 22:44
- Płeć: Kobieta
- Lokalizacja: Wrocław
- Pomógł: 92 razy
Problem ze zdobyciem kąta trójkąta(test kolizji do gry F
Szczerze to nie wiem w czym dokładnie tkwi Twój problem, "czytam" go jedynie formalnie , wiec może dlatego tego problemu nie widze.. Otóż wyznaczyłeś b_1 ale nie wiem czemu masz tam 90-kąt a raczej nie ma to być sinus kąta pomiędzy b a czerwoną linia? Po drugie może nie rozumiem co masz dane, ale jeśli mówisz , że masz dane współrzedne wszystkich zielonych punktów, to masz długości, a wiec masz i kąty, prawda? Co rozumiesz przez współrzędne? jesli nie o to tu chodzi to napisz dokładniej jeśli to rzeczywiscie problem natury geometrycznej.
-
- Użytkownik
- Posty: 6
- Rejestracja: 23 wrz 2007, o 14:13
- Płeć: Mężczyzna
- Lokalizacja: Gliwice
- Podziękował: 1 raz
Problem ze zdobyciem kąta trójkąta(test kolizji do gry F
90 to kąt w wersji gdy trójkąt c,b,z czerwoną jest prostokątny.
jak wiadomo to suma wszystkich kątów to 180 minus 90 daje 90 a najłatwiej mi było policzyć naprzeciwległy kąt niż docelowy(tzn w C++ mam sin i cos dostępny brak ctg i tg).
Z kątami jest problem taki że nie wiem jak je policzyć szukałem w googlach ale zawsze mnie kieruje na innego typu trójkąty. Pewnie miałem to w szkole ale to było dawno i nieprawda.
Zaczynam sie zastanawiać czy nie wygenerować trzy punkty ale to chyba nic nie da i użyć do generacji normalnej trójkąta, ale wtedy oczywiście w pełnym 3D, teraz uprościłem i zmiażdżyłem do 2D. A moim celem jest utrzymywanie gracza w odległości 20 punktów od ścian.
W tym wzorze:
b1 = h/sin(tu brakuje kąta)
b1,h wiadomo z rysunku.
kąt to beta.
dla prostokątnego można go policzyć z:
beta = 90 - asin(b/c)
współrzędne to x,z punktów bo y jest wyzerowane.
dane pochodzą z reytracingu wielkokątów, są bezbłędne testowałem je dokładnie.
jak wiadomo to suma wszystkich kątów to 180 minus 90 daje 90 a najłatwiej mi było policzyć naprzeciwległy kąt niż docelowy(tzn w C++ mam sin i cos dostępny brak ctg i tg).
Z kątami jest problem taki że nie wiem jak je policzyć szukałem w googlach ale zawsze mnie kieruje na innego typu trójkąty. Pewnie miałem to w szkole ale to było dawno i nieprawda.
Zaczynam sie zastanawiać czy nie wygenerować trzy punkty ale to chyba nic nie da i użyć do generacji normalnej trójkąta, ale wtedy oczywiście w pełnym 3D, teraz uprościłem i zmiażdżyłem do 2D. A moim celem jest utrzymywanie gracza w odległości 20 punktów od ścian.
W tym wzorze:
b1 = h/sin(tu brakuje kąta)
b1,h wiadomo z rysunku.
kąt to beta.
dla prostokątnego można go policzyć z:
beta = 90 - asin(b/c)
współrzędne to x,z punktów bo y jest wyzerowane.
dane pochodzą z reytracingu wielkokątów, są bezbłędne testowałem je dokładnie.
-
- Użytkownik
- Posty: 384
- Rejestracja: 3 maja 2007, o 22:44
- Płeć: Kobieta
- Lokalizacja: Wrocław
- Pomógł: 92 razy
Problem ze zdobyciem kąta trójkąta(test kolizji do gry F
Ja programowanie mialam dawno i nieprawda, wiec moge mowic tylko o kwestiach geometrycznych, z tego co mowisz masz tez w_1, w_2 wiec cosinus każdego kąta jesteś w stanie obliczyć choćby z twierdzenia cosinusów, a wiec i kat. Ale czy oto ci wlasnie chodzi to nie wiem.
-
- Użytkownik
- Posty: 6
- Rejestracja: 23 wrz 2007, o 14:13
- Płeć: Mężczyzna
- Lokalizacja: Gliwice
- Podziękował: 1 raz
Problem ze zdobyciem kąta trójkąta(test kolizji do gry F
Właśnie czegoś takiego szukałem musze tylko z tego swierdzenia wyprowadzić dane i będzie ok dzięki
czyli:
c2 = a2 + b2 − 2abcosγ
c2 + 2abcosγ = a2 + b2
γ = asin((a2 + b2 - c2)/2ab)
b2 = h/sin(asin((b*b + w2*w2 - c*c)/2*b*w2))
b1 = h/sin(asin((b*b + w1*w1 - a*a)/2*b*w1))
to rozwiązuje mi problem całkowicie
zaprogramuje to jutro po pracy i pokaże demko.
czyli:
c2 = a2 + b2 − 2abcosγ
c2 + 2abcosγ = a2 + b2
γ = asin((a2 + b2 - c2)/2ab)
b2 = h/sin(asin((b*b + w2*w2 - c*c)/2*b*w2))
b1 = h/sin(asin((b*b + w1*w1 - a*a)/2*b*w1))
to rozwiązuje mi problem całkowicie
zaprogramuje to jutro po pracy i pokaże demko.
-
- Użytkownik
- Posty: 384
- Rejestracja: 3 maja 2007, o 22:44
- Płeć: Kobieta
- Lokalizacja: Wrocław
- Pomógł: 92 razy
Problem ze zdobyciem kąta trójkąta(test kolizji do gry F
PEWNIE to pomyłka tylko, ale dla formalności tam masz cosinus wiec pojawia się arcus cosinus, a nie arcus sinus.
-
- Użytkownik
- Posty: 6
- Rejestracja: 23 wrz 2007, o 14:13
- Płeć: Mężczyzna
- Lokalizacja: Gliwice
- Podziękował: 1 raz
Problem ze zdobyciem kąta trójkąta(test kolizji do gry F
Dzięki nie zauważyłem błędu:
c2 = a2 + b2 − 2abcosγ
c2 + 2abcosγ = a2 + b2
γ = acos((a2 + b2 - c2)/2ab)
b2 = h/sin(acos((b*b + w2*w2 - c*c)/2*b*w2))
b1 = h/sin(acos((b*b + w1*w1 - a*a)/2*b*w1))
//EDIT:
w kodowałem to i działa oprócz drobnych wyjątków niekiedy strzela kamerą jak z procy .
Dał bym linka ale nie mogę limit forum.
i jest mały błąd:
2ab musi być w nawiasie inaczej generuje bzdury tzn: kosmiczne liczby coś tam w miliardach.
c2 = a2 + b2 − 2abcosγ
c2 + 2abcosγ = a2 + b2
γ = acos((a2 + b2 - c2)/2ab)
b2 = h/sin(acos((b*b + w2*w2 - c*c)/2*b*w2))
b1 = h/sin(acos((b*b + w1*w1 - a*a)/2*b*w1))
//EDIT:
w kodowałem to i działa oprócz drobnych wyjątków niekiedy strzela kamerą jak z procy .
Dał bym linka ale nie mogę limit forum.
i jest mały błąd:
2ab musi być w nawiasie inaczej generuje bzdury tzn: kosmiczne liczby coś tam w miliardach.
-
- Użytkownik
- Posty: 384
- Rejestracja: 3 maja 2007, o 22:44
- Płeć: Kobieta
- Lokalizacja: Wrocław
- Pomógł: 92 razy
Problem ze zdobyciem kąta trójkąta(test kolizji do gry F
Szkoda że nie dasz linka
No jak nie dasz w nawiasie to program Ci czyta kolejnośc działań czyli dzieli przez 2 a potem mnozy przez a i b wiec bzdury wychodzić moga
A z ciekawości kiedy pojawiają sie te wyjątki niczym z procy?
No jak nie dasz w nawiasie to program Ci czyta kolejnośc działań czyli dzieli przez 2 a potem mnozy przez a i b wiec bzdury wychodzić moga
A z ciekawości kiedy pojawiają sie te wyjątki niczym z procy?
-
- Użytkownik
- Posty: 6
- Rejestracja: 23 wrz 2007, o 14:13
- Płeć: Mężczyzna
- Lokalizacja: Gliwice
- Podziękował: 1 raz
Problem ze zdobyciem kąta trójkąta(test kolizji do gry F
Zdarzają sie gdy idę pod górkę przy ścianie celując oczywiście w nią strzela mną do góry ponad sufit, pewnie to nie dzięki temu wzorowi, on oblicza dane w poziomie.
htp://skmskm.republika.pl/gra.part1.rar (2000000B)
htp://skmskm.republika.pl/gra.part2.rar (2000000B)
htp://skmskm.republika.pl/gra.part3.rar ( 786432B)
htp://skmskm.republika.pl/gra.zip ( 286720B)
htp://skmskm.republika.pl/gra.part1.rar (2000000B)
htp://skmskm.republika.pl/gra.part2.rar (2000000B)
htp://skmskm.republika.pl/gra.part3.rar ( 786432B)
htp://skmskm.republika.pl/gra.zip ( 286720B)
-
- Użytkownik
- Posty: 384
- Rejestracja: 3 maja 2007, o 22:44
- Płeć: Kobieta
- Lokalizacja: Wrocław
- Pomógł: 92 razy
Problem ze zdobyciem kąta trójkąta(test kolizji do gry F
I co niby uruchomić ten silnik? Nie dziala, jest napisane ze cos nie znaleziono i nie mozna uruchomic aplikacj..łeee... a tak chciałam zobaczyc
-
- Użytkownik
- Posty: 6
- Rejestracja: 23 wrz 2007, o 14:13
- Płeć: Mężczyzna
- Lokalizacja: Gliwice
- Podziękował: 1 raz
Problem ze zdobyciem kąta trójkąta(test kolizji do gry F
Może kartę niekompatybilną masz?
od GF 6XXX powinno działać, osobiście mam GF 8600GT + Vista
daj mi na pw plik debug.txt, powinno go było wygenerować a w środku błędy.
od GF 6XXX powinno działać, osobiście mam GF 8600GT + Vista
daj mi na pw plik debug.txt, powinno go było wygenerować a w środku błędy.