Rotacja względem globalnej osi

0

Witam,
nie wiem czy tytuł wątku jest zbyt trafny, ale nie wiem jak inaczej mogę opisać mój problem.
Mam pewien obiekt na scenie i gdy chcę go obrócić np. w dół(względem osi x), a następnie w prawo(względem osi y) to obiekt wraca na swoje miejsce, chyba dlatego że razem z nim, po obrocie w dół, obraca się również jego oś.
W jaki sposób mogę obrócić obiekt względem "globalnej" osi?

0

obróć najpierw „w prawo”, a potem „w dół”.

1

Dookoła wybranej osi najprościej będzie chyba za pomocą kwaternionów.

u - wektor osi obrotu (jednostkowy), f - kąt obrotu

i obliczamy:
q = cos(f/2) + sin(f/2) * u;
q' = cos(f/2) - sin(f/2) * u;

I to już prawie wszystko - wystarczy tylko obliczać: p' = q * p * q'
p' - to punkt po obrocie p = (x,y,z) dookoła u o kąt f.

1 użytkowników online, w tym zalogowanych: 0, gości: 1