-
두 정점을 이용한 박스 그리기(OBB)3D Graphics/Open GL 2008. 10. 23. 19:30728x90
두 정점 start와 end가 있을때 이 길이만큼의 사각형을 구성한다.
CVector : 벡터 클래스. opengl 자체에 없으니 만들어쓰든 받아서 쓰든..
아무튼 필요하다. 아니면 일일히 계산해야함.
CVector v, v1, m_vertex[4];
//벡터를 구한다.
v1 = end - start;
//방향벡터로 정규화한다.
v1 = v1.Normalize();
//상방벡터. opengl은 오른손 좌표계라 z값이 1이다.
v = CVector(0.0, 0.0, 1.0);
//직선의 방향벡터와 상방벡터를 외적해 v1에 수직인 벡터를 구한다.
cross.Cross(v1, v);
//정점에 가로벡터를 +, -해줌으로써 사각형의 네 정점을 구한다.
m_vertex[0] = start-cross;
m_vertex[1] = start+cross;
m_vertex[2] = end-cross;
m_vertex[3] = end+cross;
'3D Graphics > Open GL' 카테고리의 다른 글
특정 벡터를 기준으로 각도 계산하기 (0) 2008.12.06 폴리곤 모드 변경하는 법 (0) 2008.01.04 텍스쳐에 라이팅이 안먹히던 현상 해결... (0) 2007.12.18 opengl2.0과 GLSL의 명세와 레퍼런스 링크 (0) 2007.08.24 블랜딩 공식을 이용해 텍스쳐에 컬러키 지정. (0) 2007.08.04