留个档
FGAPI void FGAPIENTRY glutWireCube( double size ); //空心立方体
FGAPI void FGAPIENTRY glutSolidCube( double size ); //实心立方体
FGAPI void FGAPIENTRY glutWireSphere( double radius, GLint slices, GLint stacks );//空心圆
FGAPI void FGAPIENTRY glutSolidSphere( double radius, GLint slices, GLint stacks );//实心圆
FGAPI void FGAPIENTRY glutWireCone( double base, double height, GLint slices, GLint stacks );//空心圆柱体
FGAPI void FGAPIENTRY glutSolidCone( double base, double height, GLint slices, GLint stacks );//实心圆柱体
FGAPI void FGAPIENTRY glutWireTorus( double innerRadius, double outerRadius, GLint sides, GLint rings );//空心环形
FGAPI void FGAPIENTRY glutSolidTorus( double innerRadius, double outerRadius, GLint sides, GLint rings );//实心环形
FGAPI void FGAPIENTRY glutWireDodecahedron( void );//空心12面体
FGAPI void FGAPIENTRY glutSolidDodecahedron( void );//实心12面体
FGAPI void FGAPIENTRY glutWireOctahedron( void );//空心8面体
FGAPI void FGAPIENTRY glutSolidOctahedron( void );//实心8面体
FGAPI void FGAPIENTRY glutWireTetrahedron( void );//空心三角体
FGAPI void FGAPIENTRY glutSolidTetrahedron( void );//实心三角体
FGAPI void FGAPIENTRY glutWireIcosahedron( void );//空心18面体
FGAPI void FGAPIENTRY glutSolidIcosahedron( void );//实心18面体
/*
* Teapot rendering functions, found in fg_teapot.c
* NB: front facing polygons have clockwise winding, not counter clockwise
*/
FGAPI void FGAPIENTRY glutWireTeapot( double size );//空心茶壶
FGAPI void FGAPIENTRY glutSolidTeapot( double size );//实心茶壶
可以看见,上面的代码并没有绘制圆柱的函数,绘制圆锥的函数还不包含底,于是我就写了如下函数:
void DrawCylinder(double x, double y, double top) { //绘制圆柱
gluCylinder(gluNewQuadric(), x, top, y, 100, 100);
glRotatef(180, 0, -7, 0);
glutSolidCone(x, 0.001, 100, 100);
glRotatef(180, 0, -7, 0);
glTranslatef(0, 0, y);
glutSolidCone(x, 0.001, 100, 100);
glTranslatef(0, 0, 1 - y);
}
void DrawCone(double x, double y) {
glutSolidCone(x, y, 100, 100);
glRotatef(180, 0, -7, 0);
glutSolidCone(x, 0.001, 100, 100);
glRotatef(180, 0, -7, 0);
}