绘制一个正方体
正方体其实就是由6个矩形组成的几何体,X,Y,Z轴上各两个矩形。
先绘制X轴上两个矩形
- (void)drawXPlanes { static GLfloat triangleData[] = { // X轴0.5处的平面 0.5, -0.5, 0.5f, 1, 0, 0, 0.5, -0.5f, -0.5f, 1, 0, 0, 0.5, 0.5f, -0.5f, 1, 0, 0, 0.5, 0.5, -0.5f, 1, 0, 0, 0.5, 0.5f, 0.5f, 1, 0, 0, 0.5, -0.5f, 0.5f, 1, 0, 0, // X轴-0.5处的平面 -0.5, -0.5, 0.5f, 1, 0, 0, -0.5, -0.5f, -0.5f, 1, 0, 0, -0.5, 0.5f, -0.5f, 1, 0, 0, -0.5, 0.5, -0.5f, 1, 0, 0, -0.5, 0.5f, 0.5f, 1, 0, 0, -0.5, -0.5f, 0.5f, 1, 0, 0, }; [self bindAttribs:triangleData]; glDrawArrays(GL_TRIANGLES, 0, 12); }
效果如下图:
接下来绘制Y轴和Z轴上的两个矩形:
- (void)drawYPlanes { static GLfloat triangleData[] = { -0.5, 0.5, 0.5f, 0, 1, 0, -0.5f, 0.5, -0.5f, 0, 1, 0, 0.5f, 0.5, -0.5f, 0, 1, 0, 0.5, 0.5, -0.5f, 0, 1, 0, 0.5f, 0.5, 0.5f, 0, 1, 0, -0.5f, 0.5, 0.5f, 0, 1, 0, -0.5, -0.5, 0.5f, 0, 1, 0, -0.5f, -0.5, -0.5f, 0, 1, 0, 0.5f, -0.5, -0.5f, 0, 1, 0, 0.5, -0.5, -0.5f, 0, 1, 0, 0.5f, -0.5, 0.5f, 0, 1, 0, -0.5f, -0.5, 0.5f, 0, 1, 0, }; [self bindAttribs:triangleData]; glDrawArrays(GL_TRIANGLES, 0, 12); } - (void)drawZPlanes { static GLfloat triangleData[] = { -0.5, 0.5f, 0.5, 0, 0, 1, -0.5f, -0.5f, 0.5, 0, 0, 1, 0.5f, -0.5f, 0.5, 0, 0, 1, 0.5, -0.5f, 0.5, 0, 0, 1, 0.5f, 0.5f, 0.5, 0, 0, 1, -0.5f, 0.5f, 0.5, 0, 0, 1, -0.5, 0.5f, -0.5, 0, 0, 1, -0.5f, -0.5f, -0.5, 0, 0, 1, 0.5f, -0.5f, -0.5, 0, 0, 1, 0.5, -0.5f, -0.5, 0, 0, 1, 0.5f, 0.5f, -0.5, 0, 0, 1, -0.5f, 0.5f, -0.5, 0, 0, 1, }; [self bindAttribs:triangleData]; glDrawArrays(GL_TRIANGLES, 0, 12); }
效果如图: