-
특정 벡터를 기준으로 각도 계산하기3D Graphics/Open GL 2008. 12. 6. 16:10728x90
float GetPointAngle(double *base, double *point)
{
double v[3], yv[3];
float angle;
double len;v[0] = point[0] - base[0];
v[1] = point[1] - base[1];
v[2] = point[2] - base[2];
//길이 계산.
len = sqrt( (v[0]*v[0] + v[1]*v[1] + v[2]* v[2] ) );
//normalize
v[0] /= len;
v[1] /= len;
v[2] /= len;
if (v[0] >= 0)
{
yv[0] = 0, yv[1] = 1, yv[0] = 0;
angle = acos( (v[0]*yv[0] + v[1]*yv[1] + v[2]*yv[2]) );
angle = angle/PI * 180;
}
else
{
yv[0] = 0, yv[1] = 1, yv[0] = 0;
angle = acos( (v[0]*yv[0] + v[1]*yv[1] + v[2]*yv[2]) );
angle = 360-(angle/PI * 180);
}return angle;
}'3D Graphics > Open GL' 카테고리의 다른 글
두 정점을 이용한 박스 그리기(OBB) (0) 2008.10.23 폴리곤 모드 변경하는 법 (0) 2008.01.04 텍스쳐에 라이팅이 안먹히던 현상 해결... (0) 2007.12.18 opengl2.0과 GLSL의 명세와 레퍼런스 링크 (0) 2007.08.24 블랜딩 공식을 이용해 텍스쳐에 컬러키 지정. (0) 2007.08.04