3D Graphics/Open GL

두 정점을 이용한 박스 그리기(OBB)

rajent 2008. 10. 23. 19:30
728x90


두 정점 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;