Io uso c# cmq dovrebbe essere =
Se hai modellato il modello della terra a 0.0.0 cioe' acordinate Vector3(0.0.0) per intenderci basta che fai una
Matrix.RotationX(Angle);
oppure
Matrix.RotationY(Angle);
oppure
Matrix.RotationZ(Angle);
E dovrebbe andare
Angle= float che aumenta all'infinito tipo +=0.001f;
Se pero' utlizzi il Matrix.Scaling allora dovrai utilizzare una formula del tipo
Matrix.scaling(float dim)*Matrix.RotationX(Angle);
dim= dimnenzione di scaling
Tutto cio' viene invalidato se non hai modellato la mesh a coordinate 0.0.0.
Se invece vuoi far ruotare la terra nella proiezione 3D ossia simulare l'orbita attorno a qualcosa allora dovrai utilizzare formule composte che tramite la trigonometria (Calcoli Sin,Cos) ti daranno la giusta posizione ora non ricordo la formula precisa una volta l'ho utilizzata dovrebe essere qualcosa del tipo:
world = Matrix.Traslation(posX+Math.Sin(radianti), _
0,posZ+Math.Cos(radianti))*Matrix.RotationX(Angle);
radianti aumenta o diminuisc = terra che si sposta lungo un'orbita
posX,Z = posizione di partenza
pero' e' da provare non me la ricordo bene
Ultima modifica effettuata da Il Totem il 28/09/2008 alle 14:45 |