• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Obliczanie kierunków wektorów obiektu 3D

Object Storage Arubacloud
0 głosów
230 wizyt
pytanie zadane 26 listopada 2016 w Matematyka, fizyka, logika przez Dariusz Luśnia Nowicjusz (190 p.)

Cześć, mam obiekt w przestrzeni 3D, i chciałbym obliczyć kierunki wektorów (przód, prawo, góra) na podstawie jego rotacji (x, y, z). W przykładzie (znalazłem w sieci) jest obliczany kierunek przedni obiektu w GetFrontNormal() i działa, ale bez uwzględniania wartości z rotacji. A dwa pozostałe wektory są obliczane za pomocą iloczynu wektorowego pozostałych, a nie za pomocą rotacji. Niestety próbuję obliczyć to jakoś sam ale ciężko... . Będę wdzięczny za wytłumaczenie albo jakieś linki. Ogólnie potrzebuję to do obliczenia macierzy widoku do kamery w grze, a i chciałbym to zrozumieć. Pozdrawiam.
 


glm::vec3 GameObject::GetFrontNormal()

{
	glm::vec3 front;

	front.x = cos(glm::radians(rot.y)) * cos(glm::radians(rot.x));
	front.y = sin(glm::radians(rot.x));
	front.z = sin(glm::radians(rot.y)) * cos(glm::radians(rot.x));
	
	return glm::normalize(front);
}

glm::vec3 GameObject::GetRightNormal()
{
	return glm::normalize(glm::cross(GetFrontNormal(), World::WORLD_UP));//WORLD_UP=(0,1,0)
}
glm::vec3 GameObject::GetUpNormal()
{
    return glm::normalize(glm::cross(GetRightNormal(), GetFrontNormal()));
}

2 odpowiedzi

+1 głos
odpowiedź 27 listopada 2016 przez obl Maniak (51,280 p.)

Nie wiem, czy dobrze rozumiem twój problem: masz jakiś obiekt 3W, który jest obrócony względem osi x o kąt xrot, względem osi y o kąt yrot i względem osi z o kąt zrot. Twój obiekt przed obrotem powinien mieć przypisane pewne wektory, które określają przód obiektu, bok i górę. Np. przed obrotem przód określał wektor front = {x = 1, y = 0, z = 0}; left = {x = 0; y = 1; x = 0}; top = {x = 0, y = 0, z = 0}. Teraz jak się obraca wektory? Obraca się je mnożąc dany wektor przez macierz obrotu. Macierz obrotu w przypadku obrotu względem trzech osi jest wynikiem przemnożenia trzech macierzy obrotu (po jednej dla danej osi obrotu). Przykład mnożenia wektora przez macierz obrotu dla osi x i z opisuje wzór [10] na stronie tutaj. Są tam też wzory na macierze obrotu względem poszczególnych osi. Jak mnożyć macierz przez macierz to znajdziesz tutaj (wektor jest szczególnym rodzajem macierzy). Wzory zastosowane w przykładzie podanym przez ciebie są uproszczonym wyprowadzeniem wzorów na obrót względem osi x i y.

komentarz 27 listopada 2016 przez Dariusz Luśnia Nowicjusz (190 p.)
Dzięki wielkie, spróbuje to rozgryźć :D
–1 głos
odpowiedź 27 listopada 2016 przez Dariusz Luśnia Nowicjusz (190 p.)
Może coś ktoś....?

Podobne pytania

–1 głos
0 odpowiedzi 88 wizyt
pytanie zadane 27 maja 2019 w Matematyka, fizyka, logika przez Kuciniak Użytkownik (920 p.)
+1 głos
0 odpowiedzi 233 wizyt
pytanie zadane 10 marca 2021 w Matematyka, fizyka, logika przez Zaqu93 Gaduła (4,850 p.)
0 głosów
0 odpowiedzi 335 wizyt
pytanie zadane 6 kwietnia 2020 w Matematyka, fizyka, logika przez Kuciniak Użytkownik (920 p.)

92,536 zapytań

141,377 odpowiedzi

319,454 komentarzy

61,922 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...