PDA

Просмотр полной версии : [Function] PlanarZAngleOfCamera



Salvacore
29.10.2013, 20:26
Функция на нахождения угла камеры относительно плоскости. Углы узнаются по принципу GTA SA (N - 0, W - 90, S - 180, E - 270).


forward PlanarZAngleOfCamera(Float:x,Float:y,Float:z,&Float:ang);
public PlanarZAngleOfCamera(Float:x,Float:y,Float:z,&Float:ang)
{
new Float:angl = atan(floatdiv(y,x));
if(x >= 0.0 && y >= 0.0 || x >= 0.0 && y <= 0.0) ang = angl + 270.0;
else if(x <= 0.0 && y >= 0.0 || x <= 0.0 && y <= 0.0) ang = angl + 90.0;
return 1;
}
Входные параметры: вектора камеры, взятые через GetPlayerCameraFrontVector.
Выходной параметр: искомый угол
Пример:

new Float:p[4];
GetPlayerCameraFrontVector(playerid,p[0],p[1],p[2]);
PlanarZAngleOfCamera(p[0],p[1],p[2],p[3]);
printf("Angle is %f",p[3]);