void auxSolidBox(GLdouble width,GLdouble height,GLdouble depth);这个函数用来画长方体实体图,但是他的参数只能定形,想让小长方体的左后下角固定在坐标系某一位置应该怎么办呢?我想在一个坐标系内画很多的小长方体,就是不知道怎么来定位。用绘制四边形的方法 glBegin(GL_QUADS)试了,通过四个顶点,确定一个面,通过六个面,确定一个长方体,但是显示结果乱七八糟,位置完全不是我想要得那种。不知道还有没有好的办法?

解决方案 »

  1.   

    OPENGL坐标变换很有特点,为了简单描述先定义2个坐标系,世界坐标系,当前绘图坐标系,无论如何变换,世界坐标系都不动,以屏幕中心为原点(0, 0, 0),你面对屏幕,你的右边是x正轴,上面是y正轴,屏幕指向你的为z正轴。当前绘图坐标系是绘制物体时的坐标系。程序刚初始化时,世界坐标系和当前绘图坐标系是重合的,当用glTranslatef()等变换函数做移动和旋转时,都是改变的当前绘图坐标系,改变的位置都是当前绘图坐标系相对自己的x, y,z轴所做的改变,改变以后,再用glVertex3f()等绘图函数绘图时,都是在当前绘图坐标系进行绘图,所有的函数参数也都是相对当前绘图坐标系来讲的。
      

  2.   

    呵呵 谢谢楼上两位。图已经画出来了,就是用的glTranslatef来转换的坐标系。