Eve ga link:
http://mathworld.wolfram.com/RotationMatrix.html
Ignorisi sve sto pise na engleskom ili koji god da je jezik. Pogledaj formulice (4), (5) i (6). Matematicka formulacije je univerzalna :)
Rotacije oko x, y, z ose definisane su uglovima α,β i γ datim u radijanima. Mozda ces tvoje uglove trebati da pomnozis sa π/180 da bih dobio radijane.
Ostaje jos rotacija objekta - tvoje tacke u obliku (x,y,z) koji cine objekt treba da pomnozis sa datom matricom. Mozda ce ti prethodno trebati translacija objekta - svakoj tacki pre mnozenja sa matricom dodaj (-x0, -y0, -z0) - centar rotacije ako ne zelis da rotiras oko tacke (0, 0, 0), pa posle rezultat mnozenja pomeris za (+x0, +y0, +z0).
Naravo, sve ovo ako tvoj PC ne podrzava ni openGL ni DirectX :) sto ne verujem da je slucaj. Ok, shvatio se, sve ti ovo ne treba.
I openGL i DirectX imaju funkcije koje kreiraju tvoje zeljene matrice.
DirectX:
D3DXMatrixRotationX(D3DXMATRIX *pOut, FLOAT angle)
D3DXMatrixRotationY(D3DXMATRIX *pOut, FLOAT angle)
D3DXMatrixRotationZ(D3DXMATRIX *pOut, FLOAT angle)
Ima neka knjiga na srpskom o DirectX-u - malo kopaj po ovom forumu da joj nadjes ime.
OpenGL:
glRotated ( angle , x , y , z ) - angle nije u radijanima nego u stepenima, (x, y, z) definise vektor rotacije
- ova funkcija ne vraca vektor nego cacka po matricama u GPU direktno
Nisam imao mnogo vremena da citam ceo diplomski rad, ali ovde je na srpskom objasnjeno sta/kako/zasto u OpenGL
http://147.91.203.209/Download..._radovi/nikola_milivojevic.pdf
Jos jedan koristan link:
vvv.gugl.kom