|
|

楼主 |
发表于 2007-4-13 16:45:00
|
显示全部楼层
Re:急,请教一个拾取的问题
我现在已经发现出问题的原因,但不知道怎么解决。问题是这样的,我写了段画坐标轴的代码,如果加上那段代码就会把所有的以GL_SELECT方式绘制的东西给拾取上,但如果不绘制坐标轴就没问题,我的代码是这样的,麻烦各位高手给看看 谢谢了
画坐标系的函数:
DrawCoordinate(GLenum Mode)
{
//画三个坐标箭头
glPushMatrix();
glTranslated(-m_dX*0.6,-m_dY*0.6,-m_dZ*0.6);
glColor3f(1.0,0,0);//三个圆锥颜色值
Axis(m_dZ,m_clip);//圆锥
glRasterPos3d(0,0,m_dZ*2.35/2);
glutBitmapCharacter(GLUT_BITMAP_9_BY_15,'Z');
glPushMatrix();
glRotated(90,0,1.0,0);
glColor3f(0,1.0,0);
Axis(m_dX,m_clip);
glRasterPos3d(0,0,m_dX*2.35/2);
glutBitmapCharacter(GLUT_BITMAP_9_BY_15,'X');
/*glPopMatrix();*/
glRotated(-90,1.0,0,0);
/* glPushMatrix();*/
glColor3f(0,0,1.0);
Axis(m_dY,m_clip);
glRasterPos3d(0,0,m_clip*2.35/2);
glutBitmapCharacter(GLUT_BITMAP_9_BY_15,'Y');
glPopMatrix();
glPopMatrix();
}
Axis(double length,double radium)
{
//绘制Z轴,端点为圆锥体
length=length*0.6;
radium=radium*0.6;
glPushMatrix();
GLUquadricObj *quadratic=gluNewQuadric();
gluCylinder(quadratic,radium/100,radium/100,length*2.15,32,32);
gluDeleteQuadric(quadratic);
glTranslatef(0,0,length*2.15);
glutSolidCone(radium/25,radium/10,120,9);
glPopMatrix();
}
程序调用 DrawCoordinate(GL_RENDER);
先谢谢各位了! |
|