All pastes #245108 Raw Edit

Someone

public text v1 · immutable
#245108 ·published 2006-11-10 16:52 UTC
rendered paste body
core::vector3df getTargetAngle(core::vector3df v, core::vector3df r) 
{ 
        #define PI		3.14159265358979323846
       //v -position 
       //r -target 

       core::vector3df angle; 
       float x,y,z; 
       x = r.X - v.X; 
       y = r.Y - v.Y; 
       z = r.Z - v.Z; 

       //angle in X-Z plane 
       angle.Y = atan2 (x, z); 
       angle.Y *= (180 / PI); //converting from rad to degrees 
       
       //angle.Y-=90;
       //just making sure angle is somewhere between 0-360 degrees 
       if(angle.Y < 0) angle.Y += 360; 
       if(angle.Y >= 360) angle.Y -= 360; 

       //angle in Y-Z plane while Z and X axes are already rotated around Y 
       float z1 = sqrt(x*x + z*z); 

       angle.X = atan2 (z1, y); 
       angle.X *= (180 / PI); //converting from rad to degrees 
       
       //angle.X -= 90; 
       //just making sure angle is somewhere between 0-360 degrees 
       if(angle.X < 0) angle.X += 360; 
       if(angle.X >= 360) angle.X -= 360; 
       
       
       return angle; 

}