如何判断一个点是否在长方体的内部 急送高分
假定这个点的位置Pos
这是我绘制的长方体的位置:
glTranslatef(56, 14, 56);
glBindTexture(GL_TEXTURE_2D, texture[0]); // 选择纹理
glBegin(GL_QUADS);
// 前面
glTexCoord2f(0.0f, 0.0f); glVertex3f(-4.0f, -2.0f, 4.0f); // 纹理和四边形的左下
glTexCoord2f(1.0f, 0.0f); glVertex3f( 4.0f, -2.0f, 4.0f); // 纹理和四边形的右下
glTexCoord2f(1.0f, 1.0f); glVertex3f( 4.0f, 2.0f, 4.0f); // 纹理和四边形的右上
glTexCoord2f(0.0f, 1.0f); glVertex3f(-4.0f, 2.0f, 4.0f); // 纹理和四边形的左上
// 后面
glTexCoord2f(1.0f, 0.0f); glVertex3f(-4.0f, -2.0f, -4.0f); // 纹理和四边形的右下
glTexCoord2f(1.0f, 1.0f); glVertex3f(-4.0f, 2.0f, -4.0f); // 纹理和四边形的右上
glTexCoord2f(0.0f, 1.0f); glVertex3f( 4.0f, 2.0f, -4.0f); // 纹理和四边形的左上
glTexCoord2f(0.0f, 0.0f); glVertex3f( 4.0f, -2.0f, -4.0f); // 纹理和四边形的左下
// 顶面
glTexCoord2f(0.0f, 1.0f); glVertex3f(-4.0f, 2.0f, -4.0f); // 纹理和四边形的左上
glTexCoord2f(0.0f, 0.0f); glVertex3f(-4.0f, 2.0f, 4.0f); // 纹理和四边形的左下
glTexCoord2f(1.0f, 0.0f); glVertex3f( 4.0f, 2.0f, 4.0f); // 纹理和四边形的右下
glTexCoord2f(1.0f, 1.0f); glVertex3f( 4.0f, 2.0f, -4.0f); // 纹理和四边形的右上
// 底面
glTexCoord2f(1.0f, 1.0f); glVertex3f(-4.0f, -2.0f, -4.0f); // 纹理和四边形的右上
glTexCoord2f(0.0f, 1.0f); glVertex3f( 4.0f, -2.0f, -4.0f); // 纹理和四边形的左上
glTexCoord2f(0.0f, 0.0f); glVertex3f( 4.0f, -2.0f, 4.0f); // 纹理和四边形的左下
glTexCoord2f(1.0f, 0.0f); glVertex3f(-4.0f, -2.0f, 4.0f); // 纹理和四边形的右下
// 右面
glTexCoord2f(1.0f, 0.0f); glVertex3f( 4.0f, -2.0f, -4.0f); // 纹理和四边形的右下
glTexCoord2f(1.0f, 1.0f); glVertex3f( 4.0f, 2.0f, -4.0f); // 纹理和四边形的右上
glTexCoord2f(0.0f, 1.0f); glVertex3f( 4.0f, 2.0f, 4.0f); // 纹理和四边形的左上
glTexCoord2f(0.0f, 0.0f); glVertex3f( 4.0f, -2.0f, 4.0f); // 纹理和四边形的左下
// 左面
glTexCoord2f(0.0f, 0.0f); glVertex3f(-4.0f, -2.0f, -4.0f); // 纹理和四边形的左下
glTexCoord2f(1.0f, 0.0f); glVertex3f(-4.0f, -2.0f, 4.0f); // 纹理和四边形的右下
glTexCoord2f(1.0f, 1.0f); glVertex3f(-4.0f, 2.0f, 4.0f); // 纹理和四边形的右上
glTexCoord2f(0.0f, 1.0f); glVertex3f(-4.0f, 2.0f, -4.0f); // 纹理和四边形的左上
glEnd();
glPopMatrix();
这是我的课程设计,我知道应该通过平面方程来判断。假定box的6个面均为法向向内,你分别计算这个点与6个面的位置,如果都是〉0,说明点在6个面的上方,即在box内部。
但是由于只学了两星期OpenGL,所以不知道具体该怎么写,明天就要验收了,急啊,哪位好心人帮我一下啊,我请吃饭-